将类型'str'转换为分子/分母

时间:2018-02-08 23:19:38

标签: python string list

我在将'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')

是否有特定的命令来执行此操作?

2 个答案:

答案 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