在Python中取消列出以使用itertools.product
所以我已经尝试了一段时间了,但我似乎找不到解决办法。。也许你能帮忙! 我正在尝试“取消”列表列表,以便在在Python中取消列出以使用itertools.product,python,list,product,Python,List,Product,所以我已经尝试了一段时间了,但我似乎找不到解决办法。。也许你能帮忙! 我正在尝试“取消”列表列表,以便在itertools.product()中使用它们。 您可能知道,itertools.product()可以接收多个iterable。假设我得到了这个列表: x=[[1,2,3],["a"],["B","C"]] 如果我们将其放入itertools.product(): 我们将收到 ([1, 2, 3],) (['a'],) (['B', 'C'],) 我需要的帮助是找到一种“取消列出”x的
itertools.product()
中使用它们。
您可能知道,itertools.product()
可以接收多个iterable。假设我得到了这个列表:
x=[[1,2,3],["a"],["B","C"]]
如果我们将其放入itertools.product()
:
我们将收到
([1, 2, 3],)
(['a'],)
(['B', 'C'],)
我需要的帮助是找到一种“取消列出”x的方法,因此在itertools.product()中有3个iterables,如下所示:
for i in product([1,2,3],["a"],["B","C"]):
print i
将打印:
(1, 'a', 'B')
(1, 'a', 'C')
(2, 'a', 'B')
(2, 'a', 'C')
(3, 'a', 'B')
(3, 'a', 'C')
只需使用*运算符(有时称为“splat”运算符)来解压参数:
list(product(*x))
Out[34]:
[(1, 'a', 'B'),
(1, 'a', 'C'),
(2, 'a', 'B'),
(2, 'a', 'C'),
(3, 'a', 'B'),
(3, 'a', 'C')]
只需使用*运算符(有时称为“splat”运算符)解压参数:
list(product(*x))
Out[34]:
[(1, 'a', 'B'),
(1, 'a', 'C'),
(2, 'a', 'B'),
(2, 'a', 'C'),
(3, 'a', 'B'),
(3, 'a', 'C')]
就是这个。
*
运算符返回可调用中每个元素的列表,与[item for item in iterable]
完全相同,非常感谢!这帮了大忙!:)就是这个。*
运算符返回可调用中每个元素的列表,与[item for item in iterable]
完全相同,非常感谢!这帮了大忙!:)出[34]?这是什么意思?@user3203956:你知道当你在Python控制台时,你通常在每行的开头看到>
?解释器默认区分输入和输出,并以这种方式给出行号。我想我明白了。。非常感谢你!出[34]?这是什么意思?@user3203956:你知道当你在Python控制台时,你通常在每行的开头看到>
?解释器默认区分输入和输出,并以这种方式给出行号。我想我明白了。。非常感谢你!