2024-04-19 23:00:48 发布
网友
嗨,我有一个寻找信息的脚本,信息应该是整数,但有时我发现一个空字符串,因此我得到以下错误:
ValueError: invalid literal for int() with base 10: ''
我试着做以下的事情,但是没有用。你知道吗
list = ['12', '14', '45', ''] for i in list: if '' in i: i = 0 i else: i
这一切都会匹配的。它必须是另一种方式,也没有办法我可以编辑的来源。谢谢
一个简单但有效的方法是捕捉错误并忽略它。您还可以检查值的“真实性”。你知道吗
mylist = ['12', '14', '45', ''] outlist = [] for s in mylist: if s: try: i = int(s) except ValueError: continue else: outlist.append(i)
这也可以保护您不受其他类型的非数字输入的影响。你知道吗
这段代码将获取列表中的所有元素,并过滤掉空白的元素。你知道吗
mylist = ['1','2','3','4','','','6','7'] for x in mylist: if x: print x else: pass # x is empty
您的方法可能会失败,因为您正在使用in而不是is。你知道吗
in
is
另外,不要将列表命名为list,因为这会覆盖list关键字。你知道吗
list
不要使用list作为变量名。迟早您会想使用构建的list并得到奇怪的bug:)
my_list = ['12', '14', '45', ''] for i in my_list: if not i: # i is empty string else: # ...
我猜您所显示的错误来自您试图使用int(i)的其他地方
int(i)
如果i应该被转换成int,一种方法就是这样
i
int
for i in my_list: if not i: i = 0 else: i = int(i)
另一种方法是使用异常处理程序
for i in my_list: try: i = int(i) except ValueError: i = 0
一个简单但有效的方法是捕捉错误并忽略它。您还可以检查值的“真实性”。你知道吗
这也可以保护您不受其他类型的非数字输入的影响。你知道吗
这段代码将获取列表中的所有元素,并过滤掉空白的元素。你知道吗
您的方法可能会失败,因为您正在使用
in
而不是is
。你知道吗另外,不要将列表命名为
list
,因为这会覆盖list
关键字。你知道吗不要使用
list
作为变量名。迟早您会想使用构建的list
并得到奇怪的bug:)我猜您所显示的错误来自您试图使用
int(i)
的其他地方如果
i
应该被转换成int
,一种方法就是这样另一种方法是使用异常处理程序
相关问题 更多 >
编程相关推荐