将整型字符串列表转换为元组列表



如果我有一个像下面这样的字符串列表,这些字符串都是整型值:

['10 90', '10 -90', '100 45', '20 180']

如何将其转换为元组列表?这样的:

[(10,90), (10,-90), (100,45), (20,180)]

下面的代码不会改变原始列表,因为我认为Python中的列表是可变的,我可以直接改变值,而不是创建一个正确值的新列表。最好的方法是什么?

newlines = []
for string in lines:
newlines.append(tuple(string))

打印:

[('1', '0', ' ', '9', '0'), ('1', '0', ' ', '-', '9', '0'), ('1', '0', '0', ' ', '4', '5'), ('2', '0', ' ', '1', '8', '0')]

必须先拆分每个字符串。然后将每个拆分项转换为整数;最后将对转换为元组:

out = [tuple(map(int, item.split())) for item in lst]

输出:

[(10, 90), (10, -90), (100, 45), (20, 180)]

您可以使用映射和列表推导式来完成,但为了清晰起见,我们使用简单的循环:

values=['10 90', '10 -90', '100 45', '20 180']
result=[]
for x in values:
pair=x.split()
pair=tuple(map(int, pair))
result.append(pair)
print(result)

您可以试试这个,应该会给您相同的结果,old_lst是您想要转换的列表。使用item也应该得到类似的结果。分区(' '),但您必须合并额外的步骤来弹出返回数据中的空间。

old_lst = ['10 90', '10 -90', '100 45', '20 180']
new_lst = []
for item in old_lst:
pair=item.split(' ')
new_lst.append(tuple(pair))

结果:

[('10', '90'), ('10', '-90'), ('100', '45'), ('20', '180')]

最新更新