字符串拆分为字符,同时将其添加到元组
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)
(s
和 str
)没有将 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)
我正在尝试将带有字符串的元组附加到列表,在将元组附加到列表后,元组将字符串拆分为其字符。
我的代码:
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)
(s
和 str
)没有将 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)