繁体   English   中英

将字符串转换为子列表中的int-python

[英]convert string into int in a sublist - python

因此,如果我有100个子列表,则必须将字符串替换为整数L = ['2013','Patrick','M','2566']

我必须将2013年这样的数字转换为所有子列表的整数。 我尝试过:假设每个子列表4个元素newlist = [L [0] [:5]中x的map(int,x)

但是很明显我一直在出错,因为'patrick'无法转换。

你可以简单的列表理解:)

results = [int(i) if i.isdigit() else i for i in L]

如果需要的灵活性比单行提供的灵活性高,那么另一个选择是捕获ValueError并回ValueError原始值:

L = ['2013', 'Patrick', 'M', '2566']

def try_convert(string):
    try:
        return int(string)
    except ValueError:
        return string

newlist = map(try_convert, L)

结果是:

[2013, 'Patrick', 'M', 2566]

尝试此操作,迭代您的主列表,然后根据isdigit()函数将重建的子列表转换为int:

>>> #your main list    
>>> huge_list = [
...     ['2013', 'Patrick', 'M', '2566'],
...     ['1', 'Bob', 'M', '25']
... ]
>>> #for each sublist, convert only the elements that are numbers (using isdigit() function)
>>> for idx, sublist in enumerate(huge_list):
...     huge_list[idx] = [
...         int(el) if el.isdigit() else el
...         for el in sublist
...     ]
... 
>>> huge_list
[[2013, 'Patrick', 'M', 2566], [1, 'Bob', 'M', 25]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM