Wil*_*ill 22 python list-comprehension list set python-2.7
假设我有一个ints 列表:
listOfNumbers = range(100)
Run Code Online (Sandbox Code Playgroud)
我想返回符合某种条件的元素列表,比如说:
def meetsCondition(element):
return bool(element != 0 and element % 7 == 0)
Run Code Online (Sandbox Code Playgroud)
什么是Python化的方式返回子list在一个元素list为这 meetsCondition(element)是True?
一种天真的方法:
def subList(inputList):
outputList = []
for element in inputList:
if meetsCondition(element):
outputList.append(element)
return outputList
divisibleBySeven = subList(listOfNumbers)
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以做到这一点,也许有一个列表理解或set()函数,没有临时的outputList?
the*_*eye 31
使用列表理解,
divisibleBySeven = [num for num in inputList if num != 0 and num % 7 == 0]
Run Code Online (Sandbox Code Playgroud)
或者你也可以使用meetsCondition,
divisibleBySeven = [num for num in inputList if meetsCondition(num)]
Run Code Online (Sandbox Code Playgroud)
你可以用Python的truthy语义编写相同的条件,就像这样
divisibleBySeven = [num for num in inputList if num and num % 7]
Run Code Online (Sandbox Code Playgroud)
或者,你可以使用你的filter功能meetsCondition,就像这样
divisibleBySeven = filter(meetsCondition, inputList)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33215 次 |
| 最近记录: |