将列表项转换为字符串
我刚开始学习Python,以前一直用PHP作为我的服务器端脚本语言。现在我在用Python的Itertools来生成一个6位数字的所有排列组合。
import itertools
import threading
def test(full) :
#print full
codes = list(itertools.product([1,2,3,4,5,6,7,8,9,0], repeat=6))
count = len(codes)
for num in range(0, count):
item = codes[num]
print item
item
的返回结果看起来像是一个数组。它总是由6个数字组成,中间用逗号隔开,并且放在括号里。
(0, 1, 2, 3, 4, 5)
我该怎么把上面的结果格式化成下面这样的样子呢?
012345
谢谢
3 个回答
2
>>> series = (0, 1, 2, 3, 4, 5)
>>> ''.join(str(x) for x in series)
012345
上面的代码会给你一个字符串,里面包含了所有来自 (0, 1, 2, 3, 4, 5)
这个元组的元素。你也可以把它转换成 int
类型(前面的零会被去掉):
>>> int(''.join(str(x) for x in series))
12345
2
看起来像数组的其实是一个 tuple
(元组)。不过这并不重要,因为你可以使用 str.join
方法把任何可迭代的元素(只要这些元素可以转换成 str
字符串)组合成一个字符串:
>>> tpl = (0, 1, 2, 3, 4, 5)
>>> s = ''.join(str(i) for i in tpl)
>>> print s
012345
你可以在交互式解释器中输入 help(str.join)
来获取更多关于 str.join
的信息。
3
这样做会很不错
>>> from itertools import imap
>>> ''.join(imap(str, item))
012345