我试图将带字符串的元组追加到列表中,将元组追加到列表后,元组将字符串拆分为其字符。
我的代码:
onChanged
输出
[(“”,“ 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')]
答案 0 :(得分:5)
您可以用(item,)
代表一个包含单个项目的元组。因此,您的列表可以用
new_data = [(data,) for data in raw_data]
# [('hello world',), ('hello world 1',)]
tuple(string)
和(string,)
之间的区别在于,前者是由另一个序列(碰巧是字符串)组成的tuple
,而后者是一个包含单字符串。
答案 1 :(得分:3)
您的错误是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)
答案 2 :(得分:1)
要扩展其他人的答案,另一种让您知道要使用单个字符串创建元组的方法是提供一个列表。
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)