简体   繁体   English

Python从列表创建多对多关系

[英]Python create many-to-many relationships from a list

I have a list, say terms = ['A', 'B', 'C', 'D'] 我有一个列表,说terms = ['A', 'B', 'C', 'D']

Which is the best way to create a list-of-lists or list-of-tuples of many-to-many relationships like this; 这是创建像这样的多对多关系的列表或元组列表的最佳方法;

[['A','B'],['A','C'],['A','D'],['B','C'],['B','D'],['C','D']]

Using itertools.combinations() : 使用itertools.combinations()

from itertools import combinations

list(combinations(terms, r=2))

Demo: 演示:

>>> from itertools import combinations
>>> terms = ['A', 'B', 'C', 'D']
>>> list(combinations(terms, r=2))
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]

These are tuples, not lists, but that's easily remedied if that is a problem: 这些是元组,而不是列表,但是如果存在问题,则可以轻松地进行补救:

>>> map(list, combinations(terms, r=2))
[['A', 'B'], ['A', 'C'], ['A', 'D'], ['B', 'C'], ['B', 'D'], ['C', 'D']]

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

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