我在将'str'类型转换为数字时遇到了一些麻烦。我使用包含以下数字1, 2, 3, 4, 5, 6
的单独文本文件,然后将这些数字导入python并将其另存为列表。但是,通过这样做,我得到一个字符串列表,如下所示:['1', '2', '3', '4', '5', '6']
。我想转换这个字符串列表,所以列表代表数字,即输出应该是[1, 2, 3, 4, 5, 6]
。
我的代码是:
def imported_numbers(filename):
with open(filename, 'r') as f:
contents = f.read().splitlines()
print(contents)
imported_numbers('sample.txt')
是否有特定的命令来执行此操作?
答案 0 :(得分:2)
IMO说它更诡异
str_list = ['1', '2', '3']
new_list = [int(n) for n in str_list]
如果您不确定所有字符串都是有效数字,则需要添加适当的错误处理。
答案 1 :(得分:0)
您可以使用map
:
l = ['1', '2', '3', '4', '5', '6']
new_l = list(map(int, l)) # or just map(int, l) in Python 2
将返回
[1, 2, 3, 4, 5, 6]
如果有些字符串无法转换为数字,则会抛出错误:
l = ['1', '2', '3', '4', '5', 'lkj']
list(map(int, l))
ValueError:基数为10的int()的文字无效:' lkj'
因此,请确保您的输入有效和/或将其包装到try/except
。