如何将列表中的元素分组为python 3中的列表列表

2024-09-25 16:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个物品清单

[
{'latitude': 40.7136948694776, 'days': "['MON']", 'from_time': '11AM', 'longtitude': -73.9869100091687, 'to_time': '12:30PM', 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & THURS'},
{'latitude': 40.7136948694776, 'days': "['MON']", 'from_time': '11AM', 'longtitude': -73.9869100091687, 'to_time': '12:30PM', 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & FRI'},
{'latitude': 40.7136948694776, 'days': "['MON']", 'from_time': '11AM', 'longtitude': -73.9869100091688, 'to_time': '12:30PM', 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & WED'},
]

第一个元素和第二个元素具有相同的纬度和长度。我想把它们组合在一起,这样最终的结果就是

[
  [
    {'latitude': 40.7136948694776, 'days': "['MON']", 'from_time': '11AM', 'longtitude': -73.9869100091687, 'to_time': '12:30PM', 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & THURS'},
    {'latitude': 40.7136948694776, 'days': "['MON']", 'from_time': '11AM', 'longtitude': -73.9869100091687, 'to_time': '12:30PM', 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & FRI'}
  ],
  [
    {'latitude': 40.7136948694776, 'days': "['MON']", 'from_time': '11AM', 'longtitude': -73.9869100091688, 'to_time': '12:30PM', 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & WED'}
  ]
]

我怎么能用Python式的3种方式来做呢


Tags: tonofromtimesymboldayslatitudemon
1条回答
网友
1楼 · 发布于 2024-09-25 16:33:18

这并不是python3特有的,但它不需要修改即可工作:

>>> from collections import defaultdict
>>> d=defaultdict(list)
>>> for item in a:
...  d[(item['latitude'],item['longtitude'])].append(item)
... 
>>> d
defaultdict(<type 'list'>, {(40.7136948694776, -73.9869100091688): [{'days': "['MON']", 'longtitude': -73.9869100091688, 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & WED', 'to_time': '12:30PM', 'latitude': 40.7136948694776, 'from_time': '11AM'}], (40.7136948694776, -73.9869100091687): [{'days': "['MON']", 'longtitude': -73.9869100091687, 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & THURS', 'to_time': '12:30PM', 'latitude': 40.7136948694776, 'from_time': '11AM'}, {'days': "['MON']", 'longtitude': -73.9869100091687, 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & FRI', 'to_time': '12:30PM', 'latitude': 40.7136948694776, 'from_time': '11AM'}]})
>>> d.values()
[[{'days': "['MON']", 'longtitude': -73.9869100091688, 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & WED', 'to_time': '12:30PM', 'latitude': 40.7136948694776, 'from_time': '11AM'}], [{'days': "['MON']", 'longtitude': -73.9869100091687, 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & THURS', 'to_time': '12:30PM', 'latitude': 40.7136948694776, 'from_time': '11AM'}, {'days': "['MON']", 'longtitude': -73.9869100091687, 'signdesc1': 'NO PARKING (SANITATION BROOM SYMBOL) 11AM TO 12:30PM MON & FRI', 'to_time': '12:30PM', 'latitude': 40.7136948694776, 'from_time': '11AM'}]]

相关问题 更多 >