如何将包含字典的 Python 列表合并为一个最终列表

How to Merge Python List containing dictionaries into one final list

这是我的清单:

prices = [
    {'price': '19,294'}, {'price': '20,365'}, {'price': '21,437'},
    {'price': '22,628'}, {'price': '25,963'}, {'price': '26,439'},
    {'price': '28,821'}, {'price': '29,417'}, {'price': '26,320'},
    {'price': '26,797'}, {'price': '29,179'}, {'price': '29,774'},
    {'price': '46,686'}, {'price': '47,162'}, {'price': '51,807'},
    {'price': '52,402'}]

occupancy = [
    {'occupancy': 2}, {'occupancy': 2}, {'occupancy': 2},
    {'occupancy': 2}, {'occupancy': 3}, {'occupancy': 3},
    {'occupancy': 3}, {'occupancy': 3}, {'occupancy': 4},
    {'occupancy': 4}, {'occupancy': 4}, {'occupancy': 4},
    {'occupancy': '6'}, {'occupancy': '6'}, {'occupancy': '6'},
    {'occupancy': '6'}]

预期结果:

results = [
    {'price': '19,294','occupancy': 2},
    {'price': '20,365','occupancy': 2},
    {'price': '52,402','occupancy': '6'}, .....]

它们具有相同的 len() 并且具有相同的 order/range()

zip与列表推导结合使用

例如:

prices = [{'price': '19,294'}, {'price': '20,365'}, {'price': '21,437'}, {'price': '22,628'}, {'price': '25,963'}, {'price': '26,439'}, {'price': '28,821'}, {'price': '29,417'}, {
    'price': '26,320'}, {'price': '26,797'}, {'price': '29,179'}, {'price': '29,774'}, {'price': '46,686'}, {'price': '47,162'}, {'price': '51,807'}, {'price': '52,402'}]

occupancy = [{'occupancy': 2}, {'occupancy': 2}, {'occupancy': 2}, {'occupancy': 2}, {'occupancy': 3}, {'occupancy': 3}, {'occupancy': 3}, {'occupancy': 3}, {
    'occupancy': 4}, {'occupancy': 4}, {'occupancy': 4}, {'occupancy': 4}, {'occupancy': '6'}, {'occupancy': '6'}, {'occupancy': '6'}, {'occupancy': '6'}]

result = [{**m, **n} for m, n in zip(prices, occupancy)]

输出:

[{'occupancy': 2, 'price': '19,294'},
 {'occupancy': 2, 'price': '20,365'},
 {'occupancy': 2, 'price': '21,437'},
 {'occupancy': 2, 'price': '22,628'},
 {'occupancy': 3, 'price': '25,963'},
 {'occupancy': 3, 'price': '26,439'},
 {'occupancy': 3, 'price': '28,821'},
 {'occupancy': 3, 'price': '29,417'},
 {'occupancy': 4, 'price': '26,320'},
 {'occupancy': 4, 'price': '26,797'},
 {'occupancy': 4, 'price': '29,179'},
 {'occupancy': 4, 'price': '29,774'},
 {'occupancy': '6', 'price': '46,686'},
 {'occupancy': '6', 'price': '47,162'},
 {'occupancy': '6', 'price': '51,807'},
 {'occupancy': '6', 'price': '52,402'}]