Python 按列对数组进行分组并显示唯一值

标签 python arrays

我有一个数组的数组,格式如下:

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 通过 idpythons sets 创建唯一键存储值(因此您将只存储该键的唯一名称):

items = [
    ["Username1","id3"],
    ["Username1", "id4"],
    ["Username1", "id4"],
    ["Username3", "id3"]
]

data = {}
for item in items:
    if data.has_key(item[1]):
        data[item[1]].add(item[0])
    else:
        data[item[1]] = set([item[0]])
print(data)

关于Python 按列对数组进行分组并显示唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35276162/

相关文章:

Java:从 ArrayList 中获取所有第一个条目

python - 根据其他列中先前的值填充新列

python - 如何在 Pandas csv 阅读器上修复 "Error tokenizing data"?

python - 永远重复 "Kernel died, restarting"

javascript - 复选框:使用 Array.prototype.forEach.call 推送检查订单,

c++ - 按值发送数组作为参数?

python - SQLAlchemy 将表名更改为有两个下划线

python - 获取过去一周每小时的计数

c++ - 将二维数组的所有元素插入一维数组

java - Java 中的二维数组列表