在Python中可以很方便的进行类型转换。在开发中将整个字符串列表转换成整数列表也十分常见,下面介绍处理该问题的几种方式。
方法1:使用eval()
Python eval()函数用来执行一个字符串表达式,并返回表达式的值。如果表达式是用int表示,则会将参数转换为整数。
>>> lis = ['1','-4','3','-6','7']
>>> res = [eval(i) for i in lis]
>>> res
[1, -4, 3, -6, 7]
>>> lis
['1', '-4', '3', '-6', '7']

方法2:朴素方法
在执行此类操作时,这是令所有程序员印象深刻的通用方法。只需遍历整个列表并通过类型转换将列表中的每个字符串转换为 int。
>>> test_list = ['1','4','3','6','7']
>>> for i in range(0, len(test_list)):
... test_list[i] = int(test_list[i])
...
>>> test_list
[1, 4, 3, 6, 7]

方法3:使用列表推导式
这只是上述方法的一种复制,只是使用列表推导式实现的,这是开发人员一直在寻找的一种速记。它节省了编写解决方案的时间和复杂性。
>>> test_list = ['1','4','3','6','7']
>>> test_list = [ int(i) for i in test_list ]
>>> test_list
[1, 4, 3, 6, 7]

方法4:使用map()
这是执行此特定任务的最优雅、pythonic 和推荐的方法。此功能专为此类任务而设计,应该用于执行它们。
>>> test_list = ['1','4','3','6','7']
>>> test_list = list(map(int,test_list))
>>> test_list
[1, 4, 3, 6, 7]

方法5:具有混合整数表示的字符串列表
在这里,我们首先将每个字符串先转换为浮点数,然后使用 round() 函数将其转换为整数,否则会报错。
>>> lis = ['1.1','4','3.5','6.7','7.2']
>>> res = [ round(float(i)) for i in lis ]
>>> res
[1, 4, 4, 7, 7]

本文根据converting-all-strings-in-list-to-integers翻译而来,不代表烟海拾贝立场,如若转载,请注明出处:https://somirror.com/3326.html