Python简介-列出问题

Python简介-列出问题,python,Python,我们已经开始在课堂上做列表了,我有点困惑,因为以前的问题/答案曾经帮助过我 第一个问题是把列表中所有的负数加起来,我想我是对的,但我想再检查一下 import random def sumNegative(lst): sum = 0 for e in lst: if e < 0: sum = sum + e return sum lst = [] for i in range(100): lst.append(ra

我们已经开始在课堂上做列表了,我有点困惑,因为以前的问题/答案曾经帮助过我

第一个问题是把列表中所有的负数加起来,我想我是对的,但我想再检查一下

import random

def sumNegative(lst):
    sum = 0
    for e in lst:
        if e < 0:
            sum = sum + e
    return sum

lst = []
for i in range(100):
    lst.append(random.randrange(-1000, 1000))

print(sumNegative(lst))

我将如何更改此项以符合第二个问题的标准?我只是对那部分感到困惑。谢谢

求和-ve个数的代码看起来不错!我可能建议您在可以手动检查的列表上进行测试,例如:

print(sumNegative([1, -1, -2]))
同样的逻辑也适用于随机列表

关于
countOdd
函数的说明,您似乎缺少一个
=
=
检查是否相等,
=
用于赋值),并且代码似乎是计算偶数,而不是奇数。代码应为:

def countOdd(lst):
    odd = 0
    for e in lst:
        if e%2 == 1:       # Odd%2 == 1
            odd = odd + 1
    return odd
至于你的第二个问题,你可以使用一个非常类似的函数:

def countWordsBeforeSap(inputList):
    numWords = 0
    for word in inputList:
        if word.lower() != "sap":      
            numWords = numWords + 1
        else:
            return numWords

inputList = ["trees", "produce", "sap"]
print(countWordsBeforeSap(inputList))
要解释上述内容,请使用
countWordsBeforeSap
函数:

def countWordsBeforeSap(inputList):
    numWords = 0
    for word in inputList:
        if word.lower() != "sap":      
            numWords = numWords + 1
        else:
            return numWords

inputList = ["trees", "produce", "sap"]
print(countWordsBeforeSap(inputList))
  • 开始迭代单词
  • 如果单词不是
    “sap”
    ,它将递增计数器并继续
  • 如果单词是
    “sap”
    ,则它会从函数中提前返回
通过传入要检查的单词,函数可以更一般:

def countWordsBefore(inputList, wordToCheckFor):
    numWords = 0
    for word in inputList:
        if word.lower() != wordToCheckFor:      
            numWords = numWords + 1
        else:
            return numWords

inputList = ["trees", "produce", "sap"]
print(countWordsBeforeSap(inputList, "sap"))
如果要检查的单词来自单个字符串,则首先需要
将该字符串拆分为单个单词,如下所示:

inputString = "Trees produce sap"
inputList   = inputString.split(" ")
它将初始字符串拆分为由空格分隔的单词

希望这有帮助!
汤姆

对ve个数字求和的代码看起来不错!我可能建议您在可以手动检查的列表上进行测试,例如:

print(sumNegative([1, -1, -2]))
同样的逻辑也适用于随机列表

关于
countOdd
函数的说明,您似乎缺少一个
=
=
检查是否相等,
=
用于赋值),并且代码似乎是计算偶数,而不是奇数。代码应为:

def countOdd(lst):
    odd = 0
    for e in lst:
        if e%2 == 1:       # Odd%2 == 1
            odd = odd + 1
    return odd
至于你的第二个问题,你可以使用一个非常类似的函数:

def countWordsBeforeSap(inputList):
    numWords = 0
    for word in inputList:
        if word.lower() != "sap":      
            numWords = numWords + 1
        else:
            return numWords

inputList = ["trees", "produce", "sap"]
print(countWordsBeforeSap(inputList))
要解释上述内容,请使用
countWordsBeforeSap
函数:

def countWordsBeforeSap(inputList):
    numWords = 0
    for word in inputList:
        if word.lower() != "sap":      
            numWords = numWords + 1
        else:
            return numWords

inputList = ["trees", "produce", "sap"]
print(countWordsBeforeSap(inputList))
  • 开始迭代单词
  • 如果单词不是
    “sap”
    ,它将递增计数器并继续
  • 如果单词是
    “sap”
    ,则它会从函数中提前返回
通过传入要检查的单词,函数可以更一般:

def countWordsBefore(inputList, wordToCheckFor):
    numWords = 0
    for word in inputList:
        if word.lower() != wordToCheckFor:      
            numWords = numWords + 1
        else:
            return numWords

inputList = ["trees", "produce", "sap"]
print(countWordsBeforeSap(inputList, "sap"))
如果要检查的单词来自单个字符串,则首先需要
将该字符串拆分为单个单词,如下所示:

inputString = "Trees produce sap"
inputList   = inputString.split(" ")
它将初始字符串拆分为由空格分隔的单词

希望这有帮助! 汤姆

希望这能帮助你更好地理解列表


希望这能帮助你更好地理解列表

您可以有效地使用列表/生成器理解。下面是快速和内存效率

1.负片总数:

print(sum( i<0 for i in lst))
如果是随机列表。过滤字符串。查找
sap的索引

l = ['a','b',1,2,'sap',3,'d']
l = filter(lambda x: type(x)==str, l)
print(l.index('sap'))
3.奇数计数:

print(sum(i%2 != 0 for i in lst))

您可以有效地使用列表/生成器理解。下面是快速和内存效率

1.负片总数:

print(sum( i<0 for i in lst))
如果是随机列表。过滤字符串。查找
sap的索引

l = ['a','b',1,2,'sap',3,'d']
l = filter(lambda x: type(x)==str, l)
print(l.index('sap'))
3.奇数计数:

print(sum(i%2 != 0 for i in lst))