Python按列分组数组并显示唯一值
我有一个数组,其格式如下:Python按列分组数组并显示唯一值,python,arrays,Python,Arrays,我有一个数组,其格式如下: x = [["Username1","id3"], ["Username1", "id4"], ["Username1", "id4"], ["Username3", "id3"]] 我想按ID分组并显示所有唯一的用户名 如何获得如下输出: id3:Username1,Username3 id4:Userna
x = [["Username1","id3"],
["Username1", "id4"],
["Username1", "id4"],
["Username3", "id3"]]
我想按ID分组并显示所有唯一的用户名
如何获得如下输出:
id3:Username1,Username3
id4:Username1
编辑:可以按第二列分组,但我不能只显示唯一的值。这是我的密码:
data={}
for key, group in groupby(sorted(x), key=lambda x: x[1]):
data[key]=[v[0] for v in group]
print(data)
使用
dict
通过id创建唯一的键并存储值(因此您将只存储该键的唯一名称):
您可以使用for循环,但对于将来的使用,使用linq语句可能更干净 有一些很好的方法来提高linq来解决这个问题。我想你要找的是分组 例如:
from collections import defaultdict
from operator import attrgetter
def group_by(iterable, group_func):
groups = defaultdict(list)
for item in iterable:
groups[group_func(item)].append(item)
return groups
group_by((x.foo for x in ...), attrgetter('bar'))
如何删除重复项?i、 e.id4仅显示用户名1一次
from collections import defaultdict
from operator import attrgetter
def group_by(iterable, group_func):
groups = defaultdict(list)
for item in iterable:
groups[group_func(item)].append(item)
return groups
group_by((x.foo for x in ...), attrgetter('bar'))