Python 列表变成字典?

标签 python dictionary input

我有一个程序,每行读取两个(或三个)空格分隔的标记、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}

关于Python 列表变成字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43860718/

相关文章:

python - 在变量中保存对 python 字典(来自 json 文件)项的引用

Python block 键盘/鼠标输入

python - 三角形 Numpy 切片

python - 我们如何根据订阅的主题消息的变化动态改变Tkinter标签小部件中的文本?

python - 使用 django 的 gdal lib 的 "unsupported"光栅特征

Python:计算文件中一组字符串的出现次数

r - R 中的 Dictionary() 函数的问题

c# - Iterating Over ConcurrentDictionary 只读时,ConcurrentDictionary 是否被锁定?

css - IE 10 在 100 像素后截断文本框中的文本

html - 替换 html 中的文件浏览按钮的最佳方法是什么?