gpt4 book ai didi

Python:如何检测列表中的重复项以发出不同操作的信号

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:04 24 4
gpt4 key购买 nike

我有一个大型数据表,我已将其拆分为单独的列表,例如:(lists virticle)

A=[1,1,2,2,3,3,3]
B=[6,3,5,3,8,4,3]

我想要实现的是 2 个新列表,其中列表 A 被压缩为非重复值,并且重复值出现在 A 中,B 的新对应值是添加对应于该值的元素,因为例如,我希望这两个新列表是:

C=[1,2,3]
D=[9,8,15]

我想将其扩展到列表中的大量数据,我该如何实现?

最佳答案

使用itertools.groupby ,

import itertools
import operator
import collections

A=[1,1,2,2,3,3,3]
B=[6,3,5,3,8,4,3]

d = collections.OrderedDict()

for key, group in itertools.groupby(zip(A, B), key=operator.itemgetter(0)):
d[key] = sum(map(operator.itemgetter(1), group))


C = d.keys() # [1, 2, 3]
D = d.values() # [9, 8, 15]

在一行中使用列表理解,

d = collections.OrderedDict({key : sum(map(operator.itemgetter(1), group)) 
for key, group in itertools.groupby(zip(A, B), key=operator.itemgetter(0))})

关于Python:如何检测列表中的重复项以发出不同操作的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42397921/

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