私はリストにこれをロードしたとします、私は実際に辞書を持つようにPython:たくさんの "key:value"文字列から辞書を作成していますか?
info = ['apple: 1', 'orange: 2', 'grape: 3']
にはどうすれば
info = {line[0]: line[1] for line.split(': ') in info}
のようなものにすることを向けることができますか?
私はリストにこれをロードしたとします、私は実際に辞書を持つようにPython:たくさんの "key:value"文字列から辞書を作成していますか?
info = ['apple: 1', 'orange: 2', 'grape: 3']
にはどうすれば
info = {line[0]: line[1] for line.split(': ') in info}
のようなものにすることを向けることができますか?
あなたは非常に近いです!
>>> info = ['apple: 1', 'orange: 2', 'grape: 3']
>>> info = dict(line.split(': ') for line in info)
>>> info
{'orange': '2', 'grape': '3', 'apple': '1'}
は、あなたはそれをあなたは、Python 2.7以降にしようとした方法を行うことができますが、そうdict
が優れている使用して、個別に行を分割する必要があると思います。
は、ここで私が何を意味するかです:
info = ['apple: 1', 'orange: 2', 'grape: 3']
info = {fruit:num for fruit, num in (line.split(': ') for line in info)}
あなたが書くことができます。
FYIdict(tuple(line.split(': ')) for line in info)
- dictの(とセット)内包も私が知っている2.7.2 – Nate
にバックポートが、それはしませんし、コードをもっと鮮明にするか、短くしてください(上記の@ senderleの使用を参照してください)。あなたが@ senderleの答えで見ることができるように、私の 'tuple'の使用は不必要でした。 – MRAB