将此python代码的输出更改为列表?

时间:2017-06-04 15:05:38

标签: python

以下python代码为我提供了给定值的不同组合。

import itertools

iterables = [ [1,2,3,4], [88,99], ['a','b'] ]
for t in itertools.product(*iterables):
    print t

输出: -

(1, 88, 'a')
(1, 88, 'b')
(1, 99, 'a')
(1, 99, 'b')
(2, 88, 'a')

等等。

有人可以告诉我如何修改此代码,使输出看起来像一个列表;

188a
188b
199a
199b
288a

2 个答案:

答案 0 :(得分:5)

你可以试试这个:

iterables = [ [1,2,3,4], [88,99], ['a','b'] ]

new_list = [''.join(map(str, i)) for i in itertools.product(*iterables)]

答案 1 :(得分:5)

您必须将数字转换为字符串,然后加入结果:

print ''.join(map(str, t))

如果您开始使用输入字符串,则可以避免转换:

iterables = [['1', '2', '3', '4'], ['88', '99'], ['a', 'b']]
for t in itertools.product(*iterables):
    print ''.join(t)

如果你想要的只是打印这些值(否则不要对它们做任何事情)然后使用print()作为函数(使用from __future__ import print_function Python 2功能切换或使用Python 3):

from __future__ import print_function

iterables = [[1, 2, 3, 4], [88, 99], ['a', 'b']]
for t in itertools.product(*iterables):
    print(*t)