Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的组合列表_Python_List_Python 2.7_Combinations - Fatal编程技术网

python中的组合列表

python中的组合列表,python,list,python-2.7,combinations,Python,List,Python 2.7,Combinations,我正在尝试合并两个列表,并希望形成组合 a = ['ibm','dell'] b = ['strength','weekness'] 我想形成一些组合,比如[‘ibm的优势’、‘ibm的弱点’、‘戴尔的优势’、‘戴尔的弱点’] 我尝试使用zip或连接列表。我也使用了itertools,但它没有给我想要的输出。请帮忙 a = ['ibm','dell'] b = ['strength','weekness'] c = a + b itertools.combinations(c,2) for a

我正在尝试合并两个列表,并希望形成组合

a = ['ibm','dell']
b = ['strength','weekness']
我想形成一些组合,比如
[‘ibm的优势’、‘ibm的弱点’、‘戴尔的优势’、‘戴尔的弱点’]

我尝试使用zip或连接列表。我也使用了itertools,但它没有给我想要的输出。请帮忙

a = ['ibm','dell']
b = ['strength','weekness']
c = a + b
itertools.combinations(c,2)
for a in a:
    for b in b:
        print a +b
你在找我。试试这个:

import itertools

a = ['ibm', 'dell']
b = ['strength', 'weakness']

[' '.join(x) for x in itertools.product(a, b)]
=> ['ibm strength', 'ibm weakness', 'dell strength', 'dell weakness']
要循环遍历结果,请不要忘记
itertools.product()
返回一个只能使用一次的迭代器。如果您以后需要它,请将其转换为一个列表(正如我在上面所做的,使用列表理解),并将结果存储在一个变量中,以备将来使用。例如:

lst = list(itertools.product(a, b))
for a, b in lst:
    print a, b
你在找我。试试这个:

import itertools

a = ['ibm', 'dell']
b = ['strength', 'weakness']

[' '.join(x) for x in itertools.product(a, b)]
=> ['ibm strength', 'ibm weakness', 'dell strength', 'dell weakness']
要循环遍历结果,请不要忘记
itertools.product()
返回一个只能使用一次的迭代器。如果您以后需要它,请将其转换为一个列表(正如我在上面所做的,使用列表理解),并将结果存储在一个变量中,以备将来使用。例如:

lst = list(itertools.product(a, b))
for a, b in lst:
    print a, b
对于a,您需要的不是组合

a = ['ibm','dell']
b = ['strength','weekness']
嵌套for循环也可以工作:

for x in a:
    for y in b:
        c = a + b
        print(c)
对于a,您需要的不是组合

a = ['ibm','dell']
b = ['strength','weekness']
嵌套for循环也可以工作:

for x in a:
    for y in b:
        c = a + b
        print(c)

感谢奥斯卡的及时回复。另外,请您解释一下,当我循环这些项目并加入它们时,为什么列表项目开始消失。在我使用循环后,列表变为空。这样做很神奇(疤痕!)不错@RaghavShaligram这不会发生在我身上…请发布导致问题的代码。另外,您应该将列表保存在一个变量中,以备将来使用@ÓscarLópez我刚刚更新了代码并使用了一个嵌套循环。列表项开始消失。@RaghavShaligram您没有使用我答案中的代码…无论如何,请参阅我的更新。请记住,
itertools
中的函数返回迭代器(而不是列表),迭代器只能遍历一次。如果以后需要使用它们,请将它们转换为列表。您必须将结果保存在一个变量中,简单地调用该函数将不会做任何事情。为了得到及时的响应,Anks oscar。另外,请您解释一下,当我循环这些项目并加入它们时,为什么列表项目开始消失。在我使用循环后,列表变为空。这样做很神奇(疤痕!)不错@RaghavShaligram这不会发生在我身上…请发布导致问题的代码。另外,您应该将列表保存在一个变量中,以备将来使用@ÓscarLópez我刚刚更新了代码并使用了一个嵌套循环。列表项开始消失。@RaghavShaligram您没有使用我答案中的代码…无论如何,请参阅我的更新。请记住,
itertools
中的函数返回迭代器(而不是列表),迭代器只能遍历一次。如果以后需要使用它们,请将它们转换为列表。您必须将结果保存在一个变量中,简单地调用该函数不会做任何事情