如何从Python中的字符串获取列表?

时间:2019-03-28 02:13:11

标签: python list dictionary for-loop

我从字典中得到一些值。但是,当我打印出来时,它显示在底部,我需要将它们折叠到一个列表中。

我尝试了很多方法。还要列出理解。

更新: 我的字典数据是:

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']

6 个答案:

答案 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
相关问题