Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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 - Fatal编程技术网

Python 找到重复值的索引,并将这些索引位置的值添加到不同的列表中

Python 找到重复值的索引,并将这些索引位置的值添加到不同的列表中,python,Python,好吧,这有点复杂。我有两张单子 清单1=[sdfd、dfd、wer、abg、cccc] 清单2=[11,3,-11,15,3] 正如您所看到的,每个list1值都有一个对应的list2值。我需要在列表1中找到重复项,然后在列表2中添加相应的数字。在这个例子中是10和-1。替换列表2中与列表1中最后出现的重复项相对应的值,因此在本例中,在列表2中插入9代替-1。然后我可以使用update构建一个字典 您可以将每个键的索引存储在列表1- string\u positions=defaultdict(

好吧,这有点复杂。我有两张单子

清单1=[sdfd、dfd、wer、abg、cccc]

清单2=[11,3,-11,15,3]


正如您所看到的,每个list1值都有一个对应的list2值。我需要在列表1中找到重复项,然后在列表2中添加相应的数字。在这个例子中是10和-1。替换列表2中与列表1中最后出现的重复项相对应的值,因此在本例中,在列表2中插入9代替-1。然后我可以使用update构建一个字典

您可以将每个
键的索引存储在
列表1
-

string\u positions=defaultdict(列表)
对于i,枚举中的字符串(列表1):
字符串位置[string]。追加(i)
一旦您填充了这个,您就可以使用它并修改
list2
-

用于字符串位置的索引。值()
列表2[索引[-1]]=总和(列表2[i]表示索引中的i)

迭代列表1,并在执行时跟踪
dict()中的重复值:

list1 = ['asdf', 'jkl', 'asdf', 'foobar', 'bbbb']
list2 = [10, 3, -1, 17, 17]

seen = {}
for idx, item in enumerate(list1):
    if val := seen.get(item):
        list2[idx] += val
    else:
        seen[item] = list2[idx]

print(list2)
输出:

[10, 3, 9, 17, 17]

注意:Python 3.8+和:=(walrus操作符).

欢迎使用SO。你有什么问题?这不是一个讨论论坛或教程。请花点时间阅读和阅读该页面上的其他链接。抱歉,我似乎不明白。您的问题是“我该如何…”而不是“我在这里做错了什么?”,因此您的问题看起来更像是:“为我编写此问题的代码。”。也就是说,我可能会使用zip函数来获取元组列表,然后在该列表中循环,边创建词典,创建词典条目或添加到它们中。足够的提示。