我有一个程序,读取两个(或三个)空格分隔的标记,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中,这是我感到困惑的地方: 对于示例输入,dict需要如下所示:
{'Austin': {'Houston': 300}, 'SanFrancisco': {'Albany': 1000}, 'NewYorkCity': { 'SanDiego': True }}
对于我们如何工作,Dicts仍然让我感到困惑,更不用说用一个看似嵌套的词典来填补一个。任何帮助表示赞赏!
答案 0 :(得分:3)
一线更好的解决方案。
[['Austin', 'Houston', '300'],['SanFrancisco', 'Albany', '1000'],['NewYorkCity', 'SanDiego', True]]
我忽略了你的最后一个元素的长度只有两个,所以如果你可以像d = {e[0] : {e[1] : e[2]} for e in d}
那样构建列表,那么下面的解决方案就可以了。
一线解决方案。
currentTime
答案 1 :(得分:2)
d = { e[0]: {e[1]: (e[2] if e[2:] else True)} for e in d}
在最后添加这一行。