Python 当一个列表中的元素匹配时替换它';将元素与其他列表合并
我有两个python列表 当列表中的元素与第二个列表中的元素匹配时,我必须将第一个列表中的元素替换为“-1” 范例-Python 当一个列表中的元素匹配时替换它';将元素与其他列表合并,python,list,replace,list-comprehension,element,Python,List,Replace,List Comprehension,Element,我有两个python列表 当列表中的元素与第二个列表中的元素匹配时,我必须将第一个列表中的元素替换为“-1” 范例- a = [1,5,8,9,9,3,88,85,1,4,8,81,4,1,6,9,7,10] c = [3, 4, 5, 8, 9, 81, 85, 88] 输出应该是 '[1,-1,-1,-1,-1,-1,-1,1,4,-1,-1,4,1,6,-1,7,10]' 我试过了- a = [1,5,8,9,9,3,88,85,1,4,8,81,4,1,6,9,7,10] c = [
a = [1,5,8,9,9,3,88,85,1,4,8,81,4,1,6,9,7,10]
c = [3, 4, 5, 8, 9, 81, 85, 88]
输出应该是
'[1,-1,-1,-1,-1,-1,-1,1,4,-1,-1,4,1,6,-1,7,10]'
我试过了-
a = [1,5,8,9,9,3,88,85,1,4,8,81,4,1,6,9,7,10]
c = [3, 4, 5, 8, 9, 81, 85, 88]
for t in c :
list = ["-1" if x == c[t] else x for x in a]
print(list)
试试这个
a = [1,5,8,9,9,3,88,85,1,4,8,81,4,1,6,9,7,10]
b = [3, 4, 5, 8, 9, 81, 85, 88]
for index, x in enumerate(a):
if x in b:
a[index] = -1
print(a)
你可以根据自己的喜好缩短它,但它能完成任务。另一种解决方案,我觉得更容易理解
a = [1, 5, 8, 9, 9, 3, 88, 85, 1, 4, 8, 81, 4, 1, 6, 9, 7, 10]
b = [3, 4, 5, 8, 9, 81, 85, 88]
for item in a:
if item in b:
a[a.index(item)] = -1
print(a)
你必须提供你在这个问题上的努力。因此,对于文本格式,要使用代码,``请浏览、和,看看这个网站是如何工作的,并帮助你改进当前和未来的问题,这可以帮助你获得更好的答案。“演示如何解决此编码问题?”与堆栈溢出无关。您必须诚实地尝试解决方案,然后询问有关实现的具体问题。堆栈溢出不是为了替换现有的教程和文档。您请求的逻辑不清楚<代码>一个有18个元素要开始,但完成时有17个元素。您谈到匹配
b
列表,但是a
中还有4个元素,即使该元素出现在b
中。使用list.index()
您所做的工作量是当前顶级答案的两倍。“更容易理解”是发布答案的正当理由,我只是想给你一些反馈。最上面的答案更快,但我觉得对于初学者(包括我),这会更简单,而且是一个可行的解决方案。我相信,在学习时,使用您理解的代码比使用更快的代码要好得多