Python - 遍历整数列表

4

我有一个包含键值的字典,值包含像“13896615011”、“330405011”这样的值,有些可以包含多个值,例如:(3012292011, 1292123011)

我正在遍历可能的键列表,我会这样说:

for x in list: 
   if (x in dict):
      found_match = dict.get(x)
      print(found_match)

这使我得到了以下数值:

[13896615011]

[330405011]

[3012292011,1292123011]

[2476681011]

[172450,3109930011]

等等。

现在,我有另一个字典,它使用上面打印出来的值作为键,但是当我使用for循环逐个读取每个值时,它会将每个整数分别输出,就像这样:

for value in found_match:
   print(value)

对于第一个值,它会返回:

1

3

8

9

等等,对于列表中的所有值都是如此。我想迭代found_match的原因是因为可能有两个值而不仅仅是一个。我想将从我的第二个字典返回的所有可能的值附加到其中,该字典使用这些值(例如13896615011)作为键-这样我就可以将这些值映射到我的第一个字典的原始键。

我该如何实现?


你应该添加这个 "found_match" - Daniyal Syed
我对你的字典中值的类型感到困惑。它们是整数的字符串和元组吗?还是字符串和字符串的元组?或者是列表?从程序在迭代“found_match”时的行为来看,当它们是单个值时,它们似乎是字符串,并且您正在迭代字符而不是整数。 - austin-schick
小小的建议:不要用Python类型的名称(如list、dict)来命名你的对象。 - boardrider
5个回答

1
我认为这就是你想要的。
found_match=[]
for x in list: 
   if (x in dict):
      found_match.append(dict.get(x))
      print(found_match)

0

如果您能够发布一个可用的代码块来复制该问题,那将非常有帮助。但是,听起来您正在遇到了对象类型的问题,即打印单个字符的for循环是这样做的,因为 found_match 是一个字符串。

根据我理解您问题的一些指针是:

for x in _list:
   if x in _dict:
      print(_dict[x])

0

你正在每次循环迭代中覆盖变量found_match

你想要的可能是以下内容:

matches = []

for x in list: 
    if (x in dict):
        found_match = dict.get(x)

        matches.append(found_match)
        print(found_match)


for value in matches:
    print(value)

0

(从上面的答案中可以推断出你的意图)

这听起来像是列表推导式的一个很好的例子。

matches = [dict.get(x, 0) for x in _list if x in list(dict.keys())]

0

看起来你想把字典中的值读取为列表。你可以将这些值存储在一个列表中而不是单个变量中:

Values = []
    for x in list:
        if (x in dict):
            Values.extend( dict.get(x) )        

for x in list(Values):
   print(x)

当字典的值是元组或列表时,这可能会出现问题,因为将该值附加到Values将附加整个对象。也许应该根据类型进行转换,并且如果该值是元组或列表,则应使用“extend”而不是“append”。 - austin-schick
如果这是一个字典,那么键在哪里? - Taufiq Rahman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接