Python 3.x 访问列表中的字典元素

Python 3.x 访问列表中的字典元素,python-3.x,Python 3.x,我有一份字典清单: [{'start': '09:00', 'end': '11:00'}, {'start': '12:30', 'end': '12:45'}, {'start': '13:15', 'end': '14:00'}, {'start': '15:00', 'end':'16:45'}, {'start': '16:55', 'end': '17:00'}] 每次我都必须获取值为“end”的第一个字典和值为“start”的下一个字典的值: 对于空闲\u插槽中的每个\u插槽:

我有一份字典清单:

 [{'start': '09:00', 'end': '11:00'}, {'start': '12:30', 'end': '12:45'}, {'start': '13:15', 'end': '14:00'}, {'start': '15:00', 'end':'16:45'}, {'start': '16:55', 'end': '17:00'}]
每次我都必须获取值为“end”的第一个字典和值为“start”的下一个字典的值:

对于空闲\u插槽中的每个\u插槽:
对于每个_槽中的键。项():
如果键=='end':
打印(key.val())

我希望我的循环应该每次都获取这种输出。我的第一个循环应该获取第一个字典“end”:11:00和start:12:30,第二个迭代应该获取“end”:12.45和start:13:15。
但是我遇到了一个错误

您可以尝试下面的方法,看看是否适合您的需要

my_dict=[{'start':'09:00','end':'11:00},{'start':'12:30','end':'12:45},{'start':'13:15','end':'14:00},{'start':'15:00','end':'16:45'},{'start':'16:55','end':'17:00}]
已处理的目录=[{'start':my_dict[x]['start']}如果x%2==1,则为范围(len(my_dict))中的x处理{'end':my_dict[x]['end']}
打印(已处理列表)
输出如下所示

[{'end':'11:00'},{'start':'12:30'},{'end':'14:00'},{'start':'15:00'},{'end':'17:00'}]

祝您万事如意。

您可以试试下面的,看看是否适合您的需要

my_dict=[{'start':'09:00','end':'11:00},{'start':'12:30','end':'12:45},{'start':'13:15','end':'14:00},{'start':'15:00','end':'16:45'},{'start':'16:55','end':'17:00}]
已处理的目录=[{'start':my_dict[x]['start']}如果x%2==1,则为范围(len(my_dict))中的x处理{'end':my_dict[x]['end']}
打印(已处理列表)
输出如下所示

[{'end':'11:00'},{'start':'12:30'},{'end':'14:00'},{'start':'15:00'},{'end':'17:00'}]
万事如意。

另一种解决方案:

l=[{'start': '09:00', 'end': '11:00'}, {'start': '12:30' , 'end': '12:45'}, {'start': '13:15', 'end': '14:00'}, {'start': '15:00', 'end':'16:45'}, {'start': '16:55', 'end': '17:00'}]
    for i in  range(0,len(l)-1):
     print('end:',l[i]['end'],'Start:',l[i+1]['start'])
另一个解决方案:

l=[{'start': '09:00', 'end': '11:00'}, {'start': '12:30' , 'end': '12:45'}, {'start': '13:15', 'end': '14:00'}, {'start': '15:00', 'end':'16:45'}, {'start': '16:55', 'end': '17:00'}]
    for i in  range(0,len(l)-1):
     print('end:',l[i]['end'],'Start:',l[i+1]['start'])

你可以像下面这样做。您可以将源数据中的所有
开始
结束
放入一个单独的列表中,然后将开始移动到1个位置,并将这两个列表都移动到
zip

data = [{'start': '09:00', 'end': '11:00'}, {'start': '12:30' , 'end': '12:45'}, {'start': '13:15', 'end': '14:00'}, {'start': '15:00', 'end':'16:45'}, {'start': '16:55', 'end': '17:00'}]

starts = list(map(lambda d : d['start'], data))[1:]
ends = list(map(lambda d : d['end'], data))

for v in zip(ends, starts):
    print(v)

输出:

('11:00', '12:30')
('12:45', '13:15')
('14:00', '15:00')
('16:45', '16:55')

你可以像下面这样做。您可以将源数据中的所有
开始
结束
放入一个单独的列表中,然后将开始移动到1个位置,并将这两个列表都移动到
zip

data = [{'start': '09:00', 'end': '11:00'}, {'start': '12:30' , 'end': '12:45'}, {'start': '13:15', 'end': '14:00'}, {'start': '15:00', 'end':'16:45'}, {'start': '16:55', 'end': '17:00'}]

starts = list(map(lambda d : d['start'], data))[1:]
ends = list(map(lambda d : d['end'], data))

for v in zip(ends, starts):
    print(v)

输出:

('11:00', '12:30')
('12:45', '13:15')
('14:00', '15:00')
('16:45', '16:55')

它起作用了,但我的要求不同,所以我使用了前一个。谢谢它起作用了,但我的要求不同,所以我使用了前一个。谢谢实际上就像那一个,有点过于复杂了
lambda
zip
;-)实际上就像那一个,有点过于复杂了
lambda
zip
;-)