SunnyEdward 2022-03-15 16:06 采纳率: 75%
浏览 33
已结题

关于list和dict的操作

遇到的问题

我有一个list,里面包含多个dict,类似这样:

[{'order_id': 5966280.0, 'eta': 531.0, 'dist': 2923.0, 'simple_eta': 495.0, 'driver_id': 75457.0, 'slice_id': 153.0, 'link_id': [157298.0, 511622.0, 524542.0, 97293.0, 273845.0, 556273.0, 73842.0, 101675.0, 325444.0, 134737.0], 'link_time': [4.5, 2.8552, 2.2345, 3.6, 3.2276, 3.7241, 2.4828, 2.4828, 0.7043, 3.6], 'link_ratio': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'link_arrival_status': [0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'cross_start': [47128.0, 624101.0, 30464.0, 160457.0, 597673.0], 'cross_end': [204460.0, 153565.0, 397883.0, 527119.0, 507113.0], 'cross_time': [23.0, 30.0, 26.0, 18.0, 30.0], 'lowtemp': 26, 'hightemp': 28, 'weekday': 5, 'weather': 3}, {'order_id': 6099942.0, 'eta': 590.0, 'dist': 3212.278, 'simple_eta': 559.0, 'driver_id': 19210.0, 'slice_id': 157.0, 'link_id': [177913.0, 401603.0, 344001.0, 568920.0, 535738.0, 596121.0, 84667.0, 226187.0, 394415.0, 150662.0], 'link_time': [4.3311, 25.9826, 12.15, 4.5333, 3.8323, 2.1333, 3.6, 3.2625, 2.7, 1.44], 'link_ratio': [0.1702, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'link_current_status': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'link_arrival_status': [0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'cross_start': [243785.0, 224592.0, 402375.0, 191433.0], 'cross_end': [383862.0, 402375.0, 232834.0, 240117.0], 'cross_time': [30.0, 23.0, 11.0, 19.0], 'lowtemp': 26, 'hightemp': 28, 'weekday': 5, 'weather': 3},{},{}..]

我有另外一个list,类似这样:

[123,456,789,..]

我现在希望将这个列表的值带上一个key(设定为‘eta_avg’),然后对应添加到第一个list的dict中,产生这样的结果:

[{'order_id': 5966280.0, 'eta': 531.0, 'dist': 2923.0, 'simple_eta': 495.0, 'driver_id': 75457.0, 'slice_id': 153.0, 'link_id': [157298.0, 511622.0, 524542.0, 97293.0, 273845.0, 556273.0, 73842.0, 101675.0, 325444.0, 134737.0], 'link_time': [4.5, 2.8552, 2.2345, 3.6, 3.2276, 3.7241, 2.4828, 2.4828, 0.7043, 3.6], 'link_ratio': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'link_arrival_status': [0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'cross_start': [47128.0, 624101.0, 30464.0, 160457.0, 597673.0], 'cross_end': [204460.0, 153565.0, 397883.0, 527119.0, 507113.0], 'cross_time': [23.0, 30.0, 26.0, 18.0, 30.0], 'lowtemp': 26, 'hightemp': 28, 'weekday': 5, 'weather': 3,'eta_avg':123}, {'order_id': 6099942.0, 'eta': 590.0, 'dist': 3212.278, 'simple_eta': 559.0, 'driver_id': 19210.0, 'slice_id': 157.0, 'link_id': [177913.0, 401603.0, 344001.0, 568920.0, 535738.0, 596121.0, 84667.0, 226187.0, 394415.0, 150662.0], 'link_time': [4.3311, 25.9826, 12.15, 4.5333, 3.8323, 2.1333, 3.6, 3.2625, 2.7, 1.44], 'link_ratio': [0.1702, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'link_current_status': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'link_arrival_status': [0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'cross_start': [243785.0, 224592.0, 402375.0, 191433.0], 'cross_end': [383862.0, 402375.0, 232834.0, 240117.0], 'cross_time': [30.0, 23.0, 11.0, 19.0], 'lowtemp': 26, 'hightemp': 28, 'weekday': 5, 'weather': 3,'eta_avg':456},{},{}..]

请问如何能够实现这个设想呢?

  • 写回答

1条回答 默认 最新

  • 星燎 2022-03-15 23:05
    关注
    
    lens=len(list2)
    for i in range(lens):
        list1[i]['eta_avg']=list2[i]
    

    试试这个,看看行不行,这是我手敲的。
    思路:
    取list2的长度,就是只有数字的那个list。
    循环这个长度,将list2里面的值插入list1对应下标的dict。
    注意:
    list2的长度需要短于或等于list1的长度。否则会报错。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 3月24日
  • 已采纳回答 3月16日
  • 修改了问题 3月15日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 请问为什么我配置IPsec后PC1 ping不通 PC2,抓包出来数据包也并没有被加密
  • ¥200 求博主教我搞定neo4j简易问答系统,有偿
  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要