我正在尝试将具有空值和以字符串['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
答案 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 }}。