【发布时间】:2019-11-16 22:30:09
【问题描述】:
我有密码
l = [('1',['3','1','2']),('2',['4','5','2'])]
我是怎么做到的:
l = [(1,[3,1,2]),(2,[4,5,2])]
【问题讨论】:
-
由于元组是不可变的 - 你应该遍历你的集合并重新创建它。
-
请用您尝试过的代码更新您的问题。
我有密码
l = [('1',['3','1','2']),('2',['4','5','2'])]
我是怎么做到的:
l = [(1,[3,1,2]),(2,[4,5,2])]
【问题讨论】:
您可以在使用列表理解进行迭代时使用int 函数
r = [tuple([int(i),[int(k) for k in j]]) for i,j in l]
【讨论】:
这可以用递归来概括:
def to_ints(item):
if isinstance(item, list):
return [to_ints(e) for e in item]
elif isinstance(item, tuple):
return tuple(to_ints(e) for e in item)
else:
return int(item)
【讨论】:
一种简单的方法是删除引号并将其解析回列表
l = eval(str(l).replace("'", ""))
【讨论】:
eval 用于此类可以使用内置功能轻松完成的事情。