python将列表中的元素变成整数,在Python中将嵌套列表列表的元素从字符串转换为整数...

I have a nested list of lists in string format as:

l1 = [['1', '0', '3'],['4', '0', '6'],['0', '7', '8'],['0', '0', '0', '12']]

I want to convert all elements in all nested lists to integers, using a map function inside a loop works in this case:

>>> for i in range(len(l1)):

... l1[i]=list(map(int,l1[i]))

Problem is I have many such lists with multiple levels of nesting like:

l2 = ['1','4',['7',['8']],['0','1']]

l3 = ['0',['1','5'],['0','1',['8',['0','2']]]]

Is there a generic way to solve this problem without using loops?

解决方案

Recursion would be a good solution to your problem.

def convert_to_int(lists):

return [int(el) if not isinstance(el,list) else convert_to_int(el) for el in lists]

l2 = ['1','4',['7',['8']],['0','1']]

l3 = ['0',['1','5'],['0','1',['8',['0','2']]]]

convert_to_int(l2)

>>>[1, 4, [7, [8]], [0, 1]]

convert_to_int(l3)

>>>[0, [1, 5], [0, 1, [8, [0, 2]]]]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值