Python:如何在数组中合并相同的元素?
我有这个阵列:Python:如何在数组中合并相同的元素?,python,list,merge,Python,List,Merge,我有这个阵列: [['Amy', '2'], ['Amy', '2'], ['Amy', '1'], ['Yoyo', '1'], ['Yoyo', '2'], ['Yoyo', '2']] 我想这样做: [['Amy', ['2','2','1'], ['Yoyo',['1','2','2']] 可能吗?我是否需要先将其列为列表或词典?使用: 使用: 如果你能用字典 如果您可以使用字典。您可以使用itertools.groupby和排序分组依据itertools中的grou
[['Amy', '2'],
['Amy', '2'],
['Amy', '1'],
['Yoyo', '1'],
['Yoyo', '2'],
['Yoyo', '2']]
我想这样做:
[['Amy', ['2','2','1'],
['Yoyo',['1','2','2']]
可能吗?我是否需要先将其列为列表或词典?使用:
使用:
如果你能用字典
如果您可以使用字典。您可以使用
itertools.groupby
和排序
<代码>分组依据itertools
中的groupby
对连续的匹配值进行分组
data = [['Amy', '2'],
['Amy', '2'],
['Amy', '1'],
['Yoyo', '1'],
['Yoyo', '2'],
['Yoyo', '2']]
import itertools
def extract_key(v):
return v[0]
# itertools.groupby needs data to be sorted first
data = sorted(data, key=extract_key)
result = [
[k,[x[1] for x in g]]
for k, g in itertools.groupby(data, extract_key)
]
您可以使用
itertools.groupby
和sorted
<代码>分组依据itertools
中的groupby
对连续的匹配值进行分组
data = [['Amy', '2'],
['Amy', '2'],
['Amy', '1'],
['Yoyo', '1'],
['Yoyo', '2'],
['Yoyo', '2']]
import itertools
def extract_key(v):
return v[0]
# itertools.groupby needs data to be sorted first
data = sorted(data, key=extract_key)
result = [
[k,[x[1] for x in g]]
for k, g in itertools.groupby(data, extract_key)
]
看起来您有一个列表列表,而不是numpy数组。或者你有数组吗?这个问题和另一个问题的唯一区别是你的键只是每个列表的第一个元素。Thanks,它最初是一个数组,转换为列表是可以的。看起来你有一个列表列表,而不是numpy数组。或者你有数组吗?这个问题和另一个问题的唯一区别是你的键只是每个列表的第一个元素。Thanks,它最初是一个数组,转换为列表是可以的。太棒了,非常有用!棒极了,非常有用!
data = [['Amy', '2'],
['Amy', '2'],
['Amy', '1'],
['Yoyo', '1'],
['Yoyo', '2'],
['Yoyo', '2']]
import itertools
def extract_key(v):
return v[0]
# itertools.groupby needs data to be sorted first
data = sorted(data, key=extract_key)
result = [
[k,[x[1] for x in g]]
for k, g in itertools.groupby(data, extract_key)
]