字符串拆分为字符,同时将其添加到元组

String splits to characters while adding it to tuple

我正在尝试将带有字符串的元组附加到列表,在将元组附加到列表后,元组将字符串拆分为其字符。

我的代码:

def create_list():
    raw_data = ['hello world', 'hello world 1']
    new_data = []

    for data in raw_data:
        new_data.append(tuple(data))
    print(new_data)

输出

[("'", 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', "'"), ("'", 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', ' ', '1', "'")]

预期输出

[('hello world'), ('hello world 1')]

您可以使用 (item,) 表示包含单个项目的元组。所以你的列表可以用

来表达
new_data = [(data,) for data in raw_data]
# [('hello world',), ('hello world 1',)]

tuple(string)(string,)的区别在于前者是由另一个序列(恰好是一个字符串)组成的tuple,而后者是一个元组包含单个字符串。

您的错误是 tuple(s)sstr)没有将 s 放在 tuple 中,而是创建了 tuple,每个元素是 s 中的一个字符。相反,使用文字 tuple 语法 (s,)(然后是一个元素的 tuple,即 s):

def create_list():
    raw_data = ['hello world', 'hello world 1']
    new_data = []

    for data in raw_data:
        new_data.append(("'"+str(data)+"'",))
    print(new_data)

为了扩展其他人的答案,另一种让它知道您想用单个字符串创建元组的方法是提供一个列表。

def create_list():
    raw_data = ['hello world', 'hello world 1']
    new_data = []
    for data in raw_data:
        new_data.append(tuple([data]))
    print(new_data)