Bai*_*ain 6 python compare list
首先,我是python编程的新手并尝试在其他问题中进行大量研究,但没有一个我能找到与此类似的东西(所有其他都更先进)---那就说继续前进.
需要的解决方案:
浏览两个两个整数列表并比较相等性.理想情况下,我希望它能够一遍又一遍地遍历列表,直到存在相等性(显示代码后更多内容).这个数字会list2一遍又一遍地产生,直到相等.
代码说明:我有两个通过随机数生成生成的列表.列表的大小不相同.因此list1有500个条目,list2将有不同的数量从1到100不等.
#current attempt to figure out the comparison.
if (list1 = list2):
print(equalNumber)
Run Code Online (Sandbox Code Playgroud)
也许我对循环知之甚少,但我希望它循环遍历列表,我真的不知道从哪里开始.也许我没有像for循环那样使用循环?
这是我的数字生成器:
for i in range(0,500):
randoms = random.randint(0,1000)
fiveHundredLoop.append(randoms)
Run Code Online (Sandbox Code Playgroud)
第二个会做一些,但只会在1到100之间有不同的条目.{我可以自己照顾这个}
您的问题有几种可能的解释.
1)成对循环列表,当一对相等时停止:
>>> s = [10, 14, 18, 20, 25]
>>> t = [55, 42, 18, 12, 4]
>>> for x, y in zip(s, t):
if x == y:
print 'Equal element found:', x
break
Equal element found: 18
Run Code Online (Sandbox Code Playgroud)
2)循环遍历列表,当任何元素等于第一个列表中的任何其他元素时停止.这是集合有用的情况(它们可以快速进行成员资格测试):
>>> s = {18, 20, 25, 14, 10}
>>> for x in t:
if x in s:
print 'Equal element found', x
break
Equal element found 18
Run Code Online (Sandbox Code Playgroud)
3)像元素一样循环并比较它们的值:
>>> s = [10, 14, 18, 20, 25]
>>> t = [55, 42, 18, 12, 4]
>>> [x==y for x, y in zip(s, t)]
[False, False, True, False, False]
Run Code Online (Sandbox Code Playgroud)
这是套装的工作:
>>> l1 = [1,2,3,4,5]
>>> l2 = [5,6,7,8,9]
>>> set(l1) & set(l2)
{5}
Run Code Online (Sandbox Code Playgroud)