比方说,我有一个列表,其中包括 int
s:
listOfNumbers = range(100)
我想返回一个满足特定条件的元素的列表,比如说。
def meetsCondition(element):
return bool(element != 0 and element % 7 == 0)
有什么Pythonic的方法可以返回一个子的列表?list
的元素 list
为此 meetsCondition(element)
是 True
?
一种天真的做法。
def subList(inputList):
outputList = []
for element in inputList:
if meetsCondition(element):
outputList.append(element)
return outputList
divisibleBySeven = subList(listOfNumbers)
有没有一个简单的方法可以做到这一点,也许是用一个列表理解或 set()
功能,而没有临时的 outputList
?
使用列表理解。
divisibleBySeven = [num for num in inputList if num != 0 and num % 7 == 0]
或者您可以使用 meetsCondition
还:
divisibleBySeven = [num for num in inputList if meetsCondition(num)]
实际上,你可以用Python的 真性情 语义,像这样
divisibleBySeven = [num for num in inputList if num and num % 7]
或者,您可以使用 filter
功能与你 meetsCondition
,像这样
divisibleBySeven = filter(meetsCondition, inputList)