gpt4 book ai didi

python - python中两个列表的比较

转载 作者:行者123 更新时间:2023-11-30 22:42:47 24 4
gpt4 key购买 nike

我想比较两个列表,如果两个列表都有相同的单词及其匹配编号。比赛号码在这里很重要。我是这样做的;

    List1= ['john', 'doe','sima']
List2=[]
test = "John is with Doe but alina is alone today."
List2 = test.lower().split()
n=0
counter=0
while n < len(List1):
for i in range(len(List2)):
if List1[n] == List2[i]:
print("Matched : "+str(counter) + List1[n])
n=n+1
counter=counter+1
else:
print("No match :"+ List1[n])
# break
# break

如果两个列表都有匹配的单词,则程序运行正常。但对于不匹配的单词sima,循环会运行无限次。如果在 else 中中断 for 循环,然后中断其后面的 while 循环,正如代码中的注释所示,程序首先运行仅匹配。提前致谢。

编辑 1

 while n < len(List1):
for i in range(len(List2)):
# print("Matching :"+ List1[n]+ " : "+ List2[i])
if List1[n] == List2[i]:
print("Matched : "+str(counter) + List1[n])

counter=counter+1
else:
print("No match :"+ List1[n])
n=n+1

给出IndexError:列表索引超出范围错误

最佳答案

从你的代码来看,这是可行的。虽然这不是最优雅的编写方式,但这是您的代码

List1= ['john', 'doe','sima']
List2=[]
test = "John is with Doe but alina is alone today."
List2 = test.lower().split()
n=0
counter=0
while n < len(List1):
for i in range(len(List2)-1):
if List1[n] == List2[i]:
print("Matched : "+str(counter) + List1[n])
counter=counter+1
else:
print("No match :"+ List1[n])
n=n+1

这就是你的结果

Matched : 0john
No match :john
No match :john
No match :john
No match :john
No match :john
No match :john
No match :john
No match :doe
No match :doe
No match :doe
Matched : 1doe
No match :doe
No match :doe
No match :doe
No match :doe
No match :sima
No match :sima
No match :sima
No match :sima
No match :sima
No match :sima
No match :sima
No match :sima

关于python - python中两个列表的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41994618/

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