gpt4 book ai didi

python - 比较字典键、值与嵌套列表元素 - Python

转载 作者:行者123 更新时间:2023-11-30 23:10:01 25 4
gpt4 key购买 nike

尝试将字典中的键、值与嵌套列表元素相匹配

dict = {'a':[1, 5], 'c':[7, 9], 'f':[10, 12], 'b':[15, 20]}
list_A = [['a', '4'], ['a', '7'], ['b', '17'], ['b', 10], ['c', '7'], ['d', '7'], ['f', '11'], ['f', '12']]
list_A_no_reps =['a', 'b', 'c', 'd', 'f']

我试图获取一个具有与 list_A 和 dict 匹配的值的列表,即列表 a 的值(嵌套列表中的第二个元素)应该位于 dict 的值列表对之间。

match_list = [['a', '4'], ['b', '17'], ['c', '7'], ['f', '11'], [ 'f', '12']]

我试图首先将 dict 的键与 list_A_no_reps 进行匹配,如果存在匹配,我试图找出它是否位于每个键、值对的值之间。到目前为止我有这个:

g = []
for key, values in dict.items():
for element in list_A_no_rep:
if key == element:
for cord in list_A:
if (values[0] <= int(cord[1]) <= values[2]):
g.append(cord)

最佳答案

你可以尝试:

g = []
for key, values in dict.items():
if key in list_A_no_rep:
for cord in list_A:
if ( cord[0] == key ):
if (values[0] <= int(cord[1]) <= values[1]):
g.append(cord)
print g

输出:

[['a', '4'], ['c', '7'], ['b', '17'], ['f', '11'], ['f', '12']]

代码中的修改:

g = []
for key, values in dict.items():
for element in list_A_no_rep:
if key == element:
for cord in list_A:
if ( cord[0] == element ): #line added
if (values[0] <= int(cord[1]) <= values[1]):
g.append(cord)

代码中的问题是您也在检查 list_A 的所有其他元素。因此,您将得到不需要的值,该值可能在另一个键的范围内。因此需要一个 if 条件来检查是否发生与相同键的有效比较。

例如,如果没有 if 条件,您将使用 c:[7,9] 检查 ['a','7']。因此,即使它不满足为 a 指定的范围,您也会将其包含在 g 中。

关于python - 比较字典键、值与嵌套列表元素 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855559/

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