比较两个列表,如果相等,则替换第三个列表中的值

2024-09-25 14:28:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在做一个Python的在线初学者课程,我一直在学习这个元素

我有

listA = ['a','d','g','p','l','g','r','e']

listB = ['a','p','p','l','e']

listC = ['_','_','_','_','_']

我正在比较列表a中的字母,看看它们是否在列表B中,如果为真,则用该字母替换列表C中的相同索引。函数中包含以下代码:

for a in listA: for b in listB: if a==b: listC.append(listB.index(b)) stringC = str(listC) print(stringC)

问题是列表C被附加在正确的位置,但带有索引的int值

如何替换字母而不是索引值

非常感谢


Tags: 函数代码in元素列表forif字母
3条回答

如果您正在搜索,也尝试比较字符的位置

listA=['a','d','g','p','l','g','r','e']

listB=['a','p','p','l','e']

listC=['','','','','_']

minlen = min(len(listA), len(listB))
for elem in range(minlen):
    if listA[elem] == listB[elem]:
        listC[listB.index(listA[elem])] = listA[elem]
print("{}".format(listC))

如果只检查它们是否可用,Wiseman的答案看起来不错

你应该使用:

listA=['a','d','g','p','l','g','r','e']

listB=['a','p','p','l','e']

listC=['','','','','_']

for a in range(len(listA)):
    letter = listA[a]
    if letter in listB:
        listC[listB.index(letter)] = letter
stringC = str(listC)
print(stringC)

它更快,更容易理解,并且有效(尽管我不完全确定我是否理解了你的问题)

假设我理解这个问题,您不想附加到listC,而是想修改listC的元素:

for a in listA:
    if a in listB:
        listC[listB.index(a)] = a

相关问题 更多 >