Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表转换为字典_Python - Fatal编程技术网

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已经有一个月了,所以在这一点上被卡住了,所以我想问一下堆栈溢出问题。我以后会尽量不要再问这样费劲的问题了。