将具有null和文本的字符串列表转换为整数

时间:2018-08-31 15:29:38

标签: python python-3.x

我正在尝试将具有空值和以字符串['1','2','',...)输入的数字的字符串列表转换为其中空值为零的整数列表[1、2, 0,...]。我现在正在使用的代码摆脱了我的列表,并返回单个0: enter image description here

try:
    input1 = int('column1')
except ValueError:
    input1 = 0
try:
    input2 = int('column2')
except ValueError:
    input2 = 0
try:
    input3 = int('column3')
except ValueError:
    input3 = 0

print(input1)
0

2 个答案:

答案 0 :(得分:4)

您可以使用列表推导将每个值转换为int,或者如果其为空字符串,则只需使用0

>>> values = ['1', '2', '', '4']
>>> [int(i) if i else 0 for i in values]
[1, 2, 0, 4]

答案 1 :(得分:0)

解决方案

some_data = ['1', '2', '', '3', '', '4']
new_data = []

for i in some_data :
    if i != '':
        new_data.append(int(i))
    else:
        new_data.append(0)

print(some_data)
print(new_data)

输出

(xenial)vash@localhost:~/python$ python3 helping.py 
['1', '2', '', '3', '', '4']
[1, 2, 0, 3, 0, 4]

似乎使用for循环可以使任务更简单。首先设置一个for循环以循环浏览some_data中的项目。然后为每个项目检查if i != '':。如果项目通过,我们可以append作为int的项目,else如果项目为'',我们可以append一个{{1 }}。