次の辞書の理解を考慮してください。
foo = ['super capital=BLUE', 'super foo=RED']
patternMap = {x.split("=")[0]:x.split("=")[1] for x in foo}
かなり簡潔ですが、x.split('=')
2回電話する必要があるという事実は好きではありません。次のことを試しましたが、構文エラーが発生します。
patternMap = {y[0] : y[1] for y in x.split('=') for x in foo}
最初の2行で、x.split()
2回電話したり、冗長にしたりせずに結果を得る「適切な」方法はありますか?
次のdict
ようなタプルを使用して、にまっすぐ進みます。
patternMap = dict(x.split('=') for x in foo)
foo = ['super capital=BLUE', 'super foo=RED']
patternMap = {x.split("=")[0]: x.split("=")[1] for x in foo}
print(patternMap)
patternMap = dict(x.split('=') for x in foo)
print(patternMap)
# or if you really need a longer way
patternMap = {y[0]: y[1] for y in (x.split('=') for x in foo)}
print(patternMap)
{'super capital': 'BLUE', 'super foo': 'RED'}
{'super capital': 'BLUE', 'super foo': 'RED'}
{'super capital': 'BLUE', 'super foo': 'RED'}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加