Python 将列表转换为字典
我有一个包含以下数据的列表Python 将列表转换为字典,python,Python,我有一个包含以下数据的列表 Listing = ['abc:123', 'bcd:234', 'def:456'...] 上面的清单是我从一个文本文件中派生出来的,它的数据与上面的类似 如何将上述内容转换为字典 D = [abc:123, Bcd:234, Def:456] 可以使用生成器表达式和split()方法执行此操作: D = dict(i.split(":", 1) for i in Listing) 如果有些项目没有x:y格式,而您希望忽略它们,则可以添加一个条件: D = d
Listing = ['abc:123', 'bcd:234', 'def:456'...]
上面的清单是我从一个文本文件中派生出来的,它的数据与上面的类似
如何将上述内容转换为字典
D = [abc:123, Bcd:234, Def:456]
可以使用生成器表达式和
split()
方法执行此操作:
D = dict(i.split(":", 1) for i in Listing)
如果有些项目没有x:y
格式,而您希望忽略它们,则可以添加一个条件:
D = dict(i.split(":", 1) for i in Listing if ":" in i)
您可以拆分每一行并创建字典。这比Amber的答案稍微少了一点Pythonic,它做的事情大致相同
def listToDictionary(list):
dictionary = {}
for item in list:
key, value = item.split(":")
dictionary[key] = value
return dictionary
print(listToDictionary(['abc:123', 'bcd:234', 'def:456']))
您也可以使用字典理解:
D = {item.split(":")[0]: item.split(":")[1] for item in Listing}
这有一个不利的一面,分裂两次
或者,如果您知道列表中的每个项目都有7个字符长:
D = {item[:3]: item[4:] for item in Listing}
生成器表达式也不会复制列表。@Amber噢!令人惊叹的我不知道。我已经修正了我的答案。这不是你在那里写的字典,字典看起来像
D={“abc”:123,“Bcd”:234,“Def”:456}
不是downvoter,但通常有些人不喜欢用户回答低努力问题,因为它会鼓励其他人问类似的低努力问题(这不应该是这样的一部分).事实证明,我恰好不同意这个观点。@Mooningrawr对这个问题投否决票不是更好吗?如果答案是好的(就像这一个),这只会阻止回答问题的人回答问题,IMHO。再一次,不是反对者,我只是指出我在这个网站上注意到的一个习惯。@Amber:谢谢你的回答。我知道这是一个非常基本的问题,我刚开始python已经有一个月了,所以在这一点上被卡住了,所以我想问一下堆栈溢出问题。我以后会尽量不要再问这样费劲的问题了。