Skip to main content
 首页 » 编程设计

Python 列表变成字典

2025年05月04日25mfrbuaa

我有一个程序,每行读取两个(或三个)空格分隔的标记、2 个字符串和一个可选的数字

我的程序:

import sys 
d = sys.stdin.readlines() 
d = [i.split() for i in d] 
print(*d) 

运行程序:

python3 program12.py 
Austin Houston 300 
SanFrancisco     Albany         1000 
NewYorkCity    SanDiego 
['Austin', 'Houston', '300'] ['SanFrancisco', 'Albany', '1000'] ['NewYorkCity', 'SanDiego'] 

但现在我需要将这些项目添加到字典中,这让我感到困惑: 对于示例输入,dict 需要如下所示:

{'Austin': {'Houston': 300}, 'SanFrancisco':  {'Albany': 1000}, 'NewYorkCity': { 'SanDiego': True }} 

Dicts 的工作方式仍然让我感到困惑,更不用说用看起来像嵌套的 dict 来填充一个了。感谢您的帮助!

请您参考如下方法:

更新

一行更好的解决方案。

d = {e[0] : {e[1] : e[2] if len(e) == 3 else True} for e in d}


更新

我忽略了你的最后一个元素的长度只有两个,所以如果你可以像这样构建列表 [['Austin', 'Houston', '300'],['SanFrancisco', 'Albany', '1000'],['NewYorkCity', 'SanDiego', True]],那么下面的解决方案就可以了。


一线解决方案。

d = {e[0] : {e[1] : e[2]} for e in d}