gpt4 book ai didi

python - 如何在列表字典中彻底搜索以获得正确的结果

转载 作者:太空宇宙 更新时间:2023-11-04 07:29:46 25 4
gpt4 key购买 nike

这是我的代码:

dicto = [{100: 1, 90: 2, 80: 3, 70: 4}, {100: 1, 90: 2, 80: 3}, {105: 1, 100: 2, 90: 3, 80: 4}]
listo = [70,80,105]
track = []
for y in dicto:
for x in listo:
try:
track.append(y[x])
except KeyError:
pass
print(track)

我想做的是使用“listo”中的数字作为键来获取正确的值。 listo 中的第一个数字只能在'dicto' 中的第一个字典中搜索。 listo中的第二个数字只能在dicto中的第二个词典中查找,而不能在第一个词典或第三个词典中查找。 listo中的第三个数字也只能在dicto中的第三个字典中查找,不能在其他字典中查找。

输出应该是这样的:

[4,3,1]

但是我的代码正在返回:

[4,3,3,4,1]

如何修复我的代码以在 Python 3.x 中提供正确的输出

最佳答案

您可以使用zip

dicto = [{100: 1, 90: 2, 80: 3, 70: 4}, {100: 1, 90: 2, 80: 3}, {105: 1, 100: 2, 90: 3, 80: 4}]
listo = [70,80,105]

track = []
for key, d in zip(listo, dicto):
try:
track.append(d[key])
except KeyError:
pass

print(track)
# [4, 3, 1]

如果您想要 None 作为缺少键的值,您可以使用这个:

track = [d.get(key) for key, d in zip(listo, dicto)]

关于python - 如何在列表字典中彻底搜索以获得正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50443257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com