1

我一直在使用这样的东西来获取一个字符串并将其分解以添加到列表中

example_string = "Test"
example_list =[]
for x in example_string:
    example_list.append(x)

输出:

example_list = ['T','e','s','t']

有没有更直接的方法来做到这一点?

4

3 回答 3

4

你的意思比更好:

example_string = "Test"
example_list = list(example_string)

输出:

example_list = ["T","e","s","t"]

tuple()在 python 中,字符串是可迭代的,如列表或元组,您可以通过调用或轻松将字符串转换为元组或列表list()

于 2012-07-10T12:58:43.443 回答
2

如果您想为每个列表项分组 3 个字母(根据您对@Cedric 答案的评论),那么这是文档grouper中的配方:itertools

def grouper(n, iterable, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)

(您需要从 导入izip_longest函数itertools。)

于 2012-07-10T13:16:01.907 回答
0

要分组为 N 组(没有外部模块),您可以使用zip中的配方zip(*[iter(s)]*n)

所以:

>>> list(zip(*[iter("longerstring")]*3))
[('l', 'o', 'n'), ('g', 'e', 'r'), ('s', 't', 'r'), ('i', 'n', 'g')]
于 2012-07-10T14:11:18.183 回答