我有一个元组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])
。如何将结果保持为具有更改值的元组而不是将其作为列表?
答案 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))