gpt4 book ai didi

python - 我想将元组值添加到元组,如果该元组[0 :2] is repeated as shown below:

转载 作者:行者123 更新时间:2023-12-01 01:25:41 25 4
gpt4 key购买 nike

这里我有列表

some_list = [('A','B','IP1','N1'),('A','B','IP3','N3'),('B','C','IP2','N2'),('B','C','IP3','N3'),('D','F','IP4','N4')]

假设'A','B'位于('A','B','IP1','N1'),('A','B','IP3','N3')然后我们需要将两个元组合并为一个元组并替换 ('A','B','IP1','N1'),('A','B','IP3','N3')('A','B','IP1','N1','IP3','N3')some_list

结果:

some_list = [('A','B','IP1','N1','IP3','N3'), ('B','C','IP2','N2','IP3','N3'), ]

应该来,但要确保不是“A”、“B”、“C”……无论如何,每次都不会相同

你能帮我吗?

最佳答案

基本上,您需要为两个值创建一个元组键,并用它创建一个默认字典。

扩展每个键的列表的其余部分,并通过将键(作为列表)添加到值来将键/值对转换回列表列表

像这样:

import collections

some_list = [('A','B','IP1','N1'),('A','B','IP3','N3'),('B','C','IP2','N2'),('B','C','IP3','N3'),('D','F','IP4','N4')]

c = collections.defaultdict(list)
for k1,k2,*b in some_list: # extended iterable unpacking allows this
c[(k1,k2)].extend(b) # add to existing list or create a new one

result = [a+tuple(b) for a,b in c.items()]

结果:

>>> result
[('D', 'F', 'IP4', 'N4'),
('B', 'C', 'IP2', 'N2', 'IP3', 'N3'),
('A', 'B', 'IP1', 'N1', 'IP3', 'N3')]

for k1,k2,*b in some_list部分允许将前 2 个值放在单独的 k1 中和k2变量,以及 b 中的“其余”列表。此功能在 python 2 中不可用。Python 2 用户可以用更基本的循环替换:

for a in some_list:
c[tuple(a[:2])].extend(a[2:]) # add to existing list or create a new one

(这个问题与核心部分的Merge tuples with the same key类似,但前后处理使其有所不同)

关于python - 我想将元组值添加到元组,如果该元组[0 :2] is repeated as shown below:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53362600/

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