は、私が仕事のこの作品につまずいた:pythonはリスト上のタスクをそれ自身で並列に実行しますか?
def getChild(self, childName):
for child in self.children :
if(childName == child.data['name']):
return child
return None
限りわめき散らすが懸念しているとして、このコードが言うと、このライブラリについて知るためにそこにあるすべてのものを意味します。
事実のほかに
def getChild(self, childName):
myChildren = dict([
(child.data['name'],child)
for child in self.children
])
try:
return myChildren[childName]
except:
return None
、読みやすくするために、私は深いのpythonにはないですが、このタスクについて行くのI私の知る限りカノン神託の方法は、
def getChild(self, childName):
return (
[ child for child in self.children
if child.data['name'] == childName
] + [ None ]
)[0]
であるか、その私はまだどのようにいつどこでインデントするかについての手がかりがありません{
、[
、(
、)
、]
および}
私の選択肢は常にすべての要素で動作しますself.children
pythonはこれを認識し、データセットを並列に処理しますか、それともそれでも配列を順番に処理しますか? (したがって、私はそのライブラリで見つけた単純な検索よりも時間がかかります)
実行された検索の量では、リストの代わりに子供の辞書を常に維持するようにライブラリを変更する方がいいですが、ポイントのほかに。私はこのコードをPythonがどのように解釈して処理するのか知りたいです。
コードレイアウトに関する補足として、[PEP 08 - Style Guide for Python](https://www.python.org/dev/peps/pep-0008/#code-lay-out)をチェックしてください。 )。 – Ian
最初のコードブロックは、3つのうちで最も優れています( 'return None'は完全に削除できます)。 – TigerhawkT3
また、Pythonは自動的に何も並列化しません。それがあなたの仕事です。 – TigerhawkT3