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



我目前有以下列表:['10 90', '10 -90', '100 45', '20 180'].我正在尝试将字符串列表转换为充满整数的 2 元组,例如[(10, 90), (10, -90), (100, 45), (20, 180)].

我尝试使用此代码:

res = [tuple(map(int, sub.split(', '))) for sub in test_list]

但是,我收到此错误:

ValueError: invalid literal for int() with base 10: '10 90'
Command exited with non-zero status 1 

任何帮助将不胜感激。

你列表的每个值都像'10 90',2个空格分隔的数字,它们不是逗号分隔的,你需要使用sub.split(' ')或者正如文档所述你没有设置分隔符,将使用空格

如果未指定 sep 或为 None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符

values = ['10 90', '10 -90', '100 45', '20 180']
res = [tuple(map(int, sub.split())) for sub in values]
print(res) # [(10, 90), (10, -90), (100, 45), (20, 180)]
res = [tuple(map(int, sub.split(" "))) for sub in values]
print(res) # [(10, 90), (10, -90), (100, 45), (20, 180)]

Code Demo

试试这个:

lst = ['10 90', '10 -90', '100 45', '20 180']
res = [tuple(map(int, x.split())) for x in lst]
print(res)

输出:

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

您可以使用

lst = ['10 90', '10 -90', '100 45', '20 180']
list_of_tuples = [tuple(int(x) for x in item.split()) for item in lst]
print(list_of_tuples)

屈服

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

最新更新