【问题标题】:Checking same value in two seperate lists在两个单独的列表中检查相同的值
【发布时间】:2022-06-10 22:25:01
【问题描述】:

该函数应检查两个单独的列表中是否有两个相同的值。如果值相同,则应将位置(=索引)保存在附加列表中。循环后返回带有索引的附加列表。

我知道,很简单,但我是初学者:)

谁能告诉我为什么我在第二个打印语句中的输出是错误的?

#Output of my code:
[0, 0, 2, 3, 4]

#Expected Output:
[0, 2, 3, 5]

我的代码如下所示,带有双循环:

def same_values(lst1, lst2):
  lst3 = []
  for index1 in range(0,len(lst1)):
    for index2 in range(0,len(lst2)):
      if lst1[index1] == lst2[index2]:
        lst3.append(index1)
      else:
        continue
  return lst3

print(same_values([5, 1, -10, 3, 3, 1], [5, 10, -10, 3, 5, 1]))

谁能给我一个提示?

【问题讨论】:

  • 您能否说明为什么您期望得到结果?您的代码将第一个列表的 每个 项与第二个列表的 每个 项进行比较,并在匹配时将索引存储在第一个列表中。至少,这意味着输出 必须0, 0, ... 开头,因为第一个列表的索引 0 处的 5 在第二个列表中出现了两次。

标签: python list loops


【解决方案1】:

zipenumerate 在这里很有用:

def same_values(lst1, lst2):
   result = []
   for n, (x,y) in enumerate(zip(list1, lst2)):
       if x==y:
           result.append(n)
   return result

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    相关资源
    最近更新 更多