繁体   English   中英

在 Python 中的对象列表中查找唯一元素

[英]Find unique elements in the lists of lists of objects in Python

我有 Python 中的对象列表。 每个 object 都包含自己的列表。 该列表包含 object 的一些类别。 每个列表正好包含 15 个元素(可以是字母、数字或符号 -),例如。

['A', 'A', '1', '-', ... , 'B'] or ['-', 'C', 'X', '-', ... , 'D']

我的目标是为列表中的每个类别或更准确地找到每个 position 的唯一值,最好以字典的形式存储,例如:

{0: {'A', '-'} 1: {'A', 'C'} ... }

所以我需要通过列表中的所有对象 go 并保存这些唯一值。 有没有办法以优雅的pythonic方式做到这一点?

感谢所有的答案。

您可以将对象 position 与zip

>>> a=['A', 'A', '1', '-', 'B']
>>> b=['-', 'C', 'X', '-', 'D']
>>> list(zip(a,b))
[('A', '-'), ('A', 'C'), ('1', 'X'), ('-', '-'), ('B', 'D')]
>>> 

并从您的示例中获取该字典,您可以将enumerate添加到组合中

>>> dict(enumerate(zip(a,b)))
{0: ('A', '-'), 1: ('A', 'C'), 2: ('1', 'X'), 3: ('-', '-'), 4: ('B', 'D')}
>>> 

并获得唯一的这样的对,您可以使用set删除重复项

>>> c=['A', 'A', '1', '-', 'B', 'A', 'A', '1', '-', 'B']
>>> d=['-', 'C', 'X', '-', 'D', '-', 'C', 'X', '-', 'D']
>>> list(zip(c,d))
[('A', '-'), ('A', 'C'), ('1', 'X'), ('-', '-'), ('B', 'D'), ('A', '-'), ('A', 'C'), ('1', 'X'), ('-', '-'), ('B', 'D')]
>>> set(zip(c,d))
{('A', '-'), ('1', 'X'), ('A', 'C'), ('-', '-'), ('B', 'D')}
>>> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM