2024-03-28 10:02:10 发布
网友
因此,我在python中得到了如下列表:
[1,2,3,4]
我想要数字3和每个数字之间的组合如下:
[(1,3),(2,3),(3,4)]
有什么我可以用的吗?我知道有一种叫做itertools的东西,但我有点新,所以我不知道如何使用它
谢谢大家!
您可以将列表理解与itertools.combinations一起使用:
import itertools [e for e in itertools.combinations([1,2,3,4], 2) if 3 in e]
输出:
[(1, 3), (2, 3), (3, 4)]
更好的是,您可以使用itertools.repeat:
itertools.repeat
from itertools import repeat l = [1,2,3,4] [(f, s) for f, s in zip(l, repeat(3)) if f != 3]
[(1, 3), (2, 3), (4, 3)]
一种简单的方法是使用循环:
list2 = [] for x in list1: list2.append((x,3)) print(list2)
如果您想摆脱(3,3),请使用:
list2 = [] for x in list1: if x != 3: list2.append((x,3)) print(list2)
您可能希望使用列表理解:
orig_list = [1,2,3,4] [(entry, 3) for entry in orig_list if entry != 3] # [(1, 3), (2, 3), (4, 3)]
如果您对重复值不感兴趣,可以将其设置为一个集合:
orig_list = set([1,2,3,4]) [(entry, 3) for entry in orig_list if entry != 3] # [(1, 3), (2, 3), (4, 3)]
您可以将列表理解与itertools.combinations一起使用:
输出:
更好的是,您可以使用
itertools.repeat
:输出:
一种简单的方法是使用循环:
如果您想摆脱(3,3),请使用:
您可能希望使用列表理解:
如果您对重复值不感兴趣,可以将其设置为一个集合:
相关问题 更多 >
编程相关推荐