如何将包含字典的 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'}]
这是我的清单:
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'}]