python – 通过字典的复杂迭代
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 通过字典的复杂迭代,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1559字,纯文字阅读大概需要3分钟。
内容图文
![python – 通过字典的复杂迭代](/upload/InfoBanner/zyjiaocheng/744/4a1dcdd9abd740bdbd2471a779513834.jpg)
我是Python和编程的新手.试图寻找答案,但我真的在努力解决这个问题.非常感谢任何帮助.
我在字典中的数据如下:
averages_dict = {'probe1': [8.1, 7.9, 8.2], 'probe2': [7.8, 7.5, 7.7], 'probe3': [7.1, 6.6, 6.8], 'probe4': [6.7, 6.3, 6.5]}
其中列表中的项目(值)对应于不同的个体[A,B,C].
我正在尝试编写一个脚本来获取每个人(值列表[A,B,C]中的项目)的probe1,probe2和probe3(averages_dict中的键)的平均值.最后,我想要一个探针平均值列表,每个人[ave(A),ave(B),ave(C)].
我希望这是有道理的,但有希望让我更清楚.
所以我试图编写一个首先启动空列表(vals)的for循环,追加每个探测列表的第一个项目(值),计算该位置的平均值(个体),然后将此平均值附加到新列表(平均值).
即在第一次averages_dict迭代后(这是每个列表中的第一个位置),这就是我想要的:
vals = [8.1, 7.8, 7.1, 6.7]
然后计算此列表的平均值并将平均值附加到新列表(平均值)
我可以轻松地使用此代码执行大部分操作:
vals = []
for item in averages_dict:
vals.append(averages_dict[item][0])
ave_dict = dict()
i=0
for val in vals:
i = i + val
ave = i / len(vals)
我正在努力的是,如何再次从字典的开头重新迭代,在列表的第二个位置,依此类推,以便获得每个人的最终平均列表,如下所示:
averages = [7.425, 7.075, 7.3]
我意识到我可能需要某种计数器和while或for循环之前的这段代码,但是无法弄清楚是什么?
在此先感谢 – 任何建议或帮助将不胜感激.
解决方法:
我想你想要的是:
averages = [sum(items)/len(items)
for items in zip(*averages_dict.values())]
这是一个列表理解,它的作用是:
>将字典中的每组值压缩在一起,这样就可以获得三个人中每个人的值列表,而不是每个探针的值列表;
>循环通过每个人;
>将该人的读数总和除以个人的读数(len);和
>创建平均值列表.
我明白了:
[7.425000000000001, 7.074999999999999, 7.3]
内容总结
以上是互联网集市为您收集整理的python – 通过字典的复杂迭代全部内容,希望文章能够帮你解决python – 通过字典的复杂迭代所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。