我从字典中得到一些值。但是,当我打印出来时,它显示在底部,我需要将它们折叠到一个列表中。
我尝试了很多方法。还要列出理解。
更新: 我的字典数据是:
Hours= [
{'kota': 3, 'saat': '09:00'},
{'kota': 3, 'saat': '09:20'},
{'kota': 3, 'saat': '09:40'},
{'kota': 3, 'saat': '10:00'},
{'kota': 3, 'saat': '10:20'},
{'kota': 3, 'saat': '10:40'},
{'kota': 2, 'saat': '11:00'},
{'kota': 2, 'saat': '11:20'},
{'kota': 2, 'saat': '11:40'},
]
我从dic返回值:
for hour in hours:
a = hour.get("saat") # From dicionary
print(a)
我的回报:
09:00
10:00
10:20
但是我应该显示它们:
['09:00', '10:00', '10:20']
答案 0 :(得分:3)
列表理解可能是最好的选择:
mylist = [hour.get("saat") for hour in Hours]
或
mylist = [hour["saat"] for hour in Hours]
答案 1 :(得分:0)
开头声明一个空列表。遍历字典并将每个项目附加到列表中。
整个迭代完成后,在循环外打印列表。
答案 2 :(得分:0)
您可以创建一个空列表,例如说mylist,然后追加到list。在您的代码中,字典是Hours,但是您在for循环中使用了hours。
mylist = []
for hour in Hours:
mylist.append(hour.get("saat")) # From dicionary
print(mylist)
答案 3 :(得分:0)
Oneliner:
list(map(lambda x:x.get('saat'), Hours))
输出:
['09:00',
'09:20',
'09:40',
'10:00',
'10:20',
'10:40',
'11:00',
'11:20',
'11:40']
答案 4 :(得分:0)
使用python的列表来实现所需的打印。
listTmp = []
for hour in hours:
a = hour.get("saat") # From dicionary
listTmp.append(a)
print(listTmp)
答案 5 :(得分:0)
您可以使用列表理解:
>>> print([hour.get("saat") for hour in Hours])
['09:00', '09:20', '09:40', '10:00', '10:20', '10:40', '11:00', '11:20', '11:40']
此外,请记住,您可以仅将hour.get("saat")
更改为hour["saat"]
:
>>> print([hour["saat"] for hour in Hours])
['09:00', '09:20', '09:40', '10:00', '10:20', '10:40', '11:00', '11:20', '11:40']
此外,不确定是否需要它,但是如果您只想在控制台上查找一行可视化,则可以使用str.join(iterable)
:
>>> print(", ".join([hour["saat"] for hour in Hours]))
09:00, 09:20, 09:40, 10:00, 10:20, 10:40, 11:00, 11:20, 11:40