我需要从一个列表中找到对,当相加的时候和是偶数示例:list=[1,4,3,2,5,6,7] paired_list=[(1,3),(1,5),(1,7),(4,2),(4,6),(3,5),(3,7)..and so on]这些对不应该重复。1+3=4为偶数(1+5)=6为偶数
发布于 2020-10-14 13:09:34
使用itertools生成组合并应用逻辑。
from itertools import combinations
l1=[1,4,3,2,5,6,7]
comb=[ i for i in combinations(l1,2) if sum(i)%2==0]
print (comb)发布于 2020-10-14 13:09:27
您可以使用带条件的列表理解,以确保和是偶数,即将和除以2后的余数等于零:
[(i,j) for i in lst for j in lst if i != j and (i+j)%2 == 0]输出:
[(1, 3),
(1, 5),
(1, 7),
(4, 2),
(4, 6),
(3, 1),
(3, 5),
(3, 7),
(2, 4),
(2, 6),
(5, 1),
(5, 3),
(5, 7),
(6, 4),
(6, 2),
(7, 1),
(7, 3),
(7, 5)]发布于 2020-10-14 13:16:14
只需循环遍历元素并检查和
list=list(set([1,4,3,2,5,6,7]))
output_list = []
for i in list:
for j in range(i+1, len(list), 1):
if (i + list[j]) % 2 == 0:
output_list.append([i, list[j]])
print(output_list)输出
[[1, 3], [1, 5], [1, 7], [2, 4], [2, 6], [3, 5], [3, 7], [4, 6], [5, 7]]https://stackoverflow.com/questions/64346893
复制相似问题