在Python中将String元素转换为元组内的int

时间:2017-10-12 06:22:00

标签: python tuples

我有一个元组a = (('1414', 'A'), ('1416', 'B')),我需要获得result = ((1414, 'A'), (1416, 'B'))的结果。

我根据How to convert strings into integers in Python?尝试tuple([map(int, x[0]) for x in a]),结果为([1414], [1416])。如何将结果保持为具有更改值的元组而不是将其作为列表?

4 个答案:

答案 0 :(得分:3)

使用生成器表达式:

a = (('1414', 'A'), ('1416', 'B'))

result = tuple((int(x[0]), x[1]) for x in a)

答案 1 :(得分:1)

使用azip = list(zip(*a)) out = list(zip(map(int, azip[0]), azip[1]))

dialog.dismiss()

答案 2 :(得分:0)

您可以在map()中使用lambda,它将元组中的第一个元素转换为int。

a = (('1414', 'A'), ('1416', 'B'))
result = tuple(map(lambda x: (int(x[0]), x[1]), a))

答案 3 :(得分:0)

你可以这样做:

print(tuple([(int(i[0]),i[1]) for i in a]))

详细解决方案:

a = (('1414', 'A'), ('1416', 'B'))

new_list=[]

for i in a:
    new_list.append((int(i[0]),i[1]))

print(tuple(new_list))