Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当一个列表中的元素匹配时替换它';将元素与其他列表合并_Python_List_Replace_List Comprehension_Element - Fatal编程技术网

Python 当一个列表中的元素匹配时替换它';将元素与其他列表合并

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 = [

我有两个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 = [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()
您所做的工作量是当前顶级答案的两倍。“更容易理解”是发布答案的正当理由,我只是想给你一些反馈。最上面的答案更快,但我觉得对于初学者(包括我),这会更简单,而且是一个可行的解决方案。我相信,在学习时,使用您理解的代码比使用更快的代码要好得多