[英]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.