将列表项转换为字符串

0 投票
3 回答
1769 浏览
提问于 2025-04-18 04:20

我刚开始学习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

撰写回答