打印列表内容,无重复

时间:2019-04-05 19:59:59

标签: python-3.x

我有一个包含如下内容的列表:

numbers = [5,7,9,3,8]

我要打印从第一个元素开始的连续元素,并看到如下输出:

 5,7
 5,9
 5,3
 5,8
 7,9
 7,3
 7,8
 9,3
 9,8
 3,8

最后,它将打印元素,而不会重复任何两个元素

我已经尝试过

for e in numbers:
    print(numbers[:])

但这给了我

[5, 7, 9, 3, 8]
[5, 7, 9, 3, 8]
[5, 7, 9, 3, 8]
[5, 7, 9, 3, 8]
[5, 7, 9, 3, 8]

那么如何解决

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用combinations from itertools

>>> from itertools import combinations
>>> numbers = [5, 7, 9, 3, 8]
>>> list(combinations(numbers, 2))
[(5, 7), (5, 9), (5, 3), (5, 8), (7, 9), (7, 3), (7, 8), (9, 3), (9, 8), (3, 8)]

答案 1 :(得分:0)

您可以使用itertools.combinations

from itertools import combinations

numbers = [5,7,9,3,8]
combos = combinations(numbers, 2)
for combo in combos:
    print(combo)

(5, 7)
(5, 9)
(5, 3)
(5, 8)
(7, 9)
(7, 3)
(7, 8)
(9, 3)
(9, 8)
(3, 8)