int
sのリストがあるとしましょう:
_listOfNumbers = range(100)
_
そして、私は特定の条件を満たす要素のリストを返したいと言います:
_def meetsCondition(element):
return bool(element != 0 and element % 7 == 0)
_
meetsCondition(element)
がlist
であるlist
の要素のsub _True
を返すPython的な方法は何ですか?
素朴なアプローチ:
_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の truthy セマンティクスで同じ条件を書くことができます。
divisibleBySeven = [num for num in inputList if num and num % 7]
または、次のように、filter
関数でmeetsCondition
を使用できます。
divisibleBySeven = filter(meetsCondition, inputList)