Python知识点|字符串转整数需注意

简介: Python知识点|字符串转整数需注意

简说Python,号主老表,Python终身学习者,数据分析爱好者,从18年开始分享Python知识,原创文章227篇,写过Python、SQL、Excel入门文章,也写过Web开发、数据分析文章,老表还总结整理了一份2022Python学习资料和电子书资源,关注后私信回复:2022 即可领取。

大家好,我是老表~Python知识点系列,学习了记得点赞、留言、转发,三连哦~

image.png

字符串转整数需注意

问题源自我做阿里云天池Docker练习赛时(点击查看),读取num_list.csv数据后发现列表里的每个元素是字符串,所以需要先转化为整数,然后才能进行求和和排序,提交代码时遇到下面问题:

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 145 100 45 100 100 4 9 0:00:11 0:00:10 0:00:01 0
Traceback (most recent call last):
File "hello_world.py", line 14, in <module>
tc_list = [int(i) for i in tc_list]
File "hello_world.py", line 14, in <listcomp>
tc_list = [int(i) for i in tc_list]
ValueError: invalid literal for int() with base 10: ''
{"code":"SUCCESS","data":{"returnCode":true}}

倒数第二行是关键,意思是说''不能被转化为整数数据。

ValueError: invalid literal for int() with base 10: ''

所以在对列表进行处理时,需要提前去掉空字符串或者非纯数字组成的字符串,处理方法如下:

# 如果确定数据为整数,可以直接用isdigit()函数
# 1、数据为整数,不带正负号
str1.isdigit()
# 2、数据为整数,带正负号
if str1[0] in ['-', '+']:  
    if str1[1:].isdigit():
        return int(str1)
# 3、如果为浮点型,可以写一个函数
def is_number(str1):
    try:
        float(str1)    # 直接转化,为float,看报不报错
    except ValueError:  # 如果报错,说明不是数值类型
        return False
    return True
list1 = ['1', '2', '']
# 转化为数值类型,并去除非数值类型字符串
list2 = [float(i) for i in list1 if is_number(i)]

在Docker入门赛事中,由于知道数据表中的数据都为整数,所以可以直接这样处理:

tc_list = [int(i) for i in tc_list if i != '']


相关文章
|
3天前
|
索引 Python
Python中的字符串格式化:详解与应用
Python中的字符串格式化:详解与应用
10 0
|
3天前
|
Python
Python小技巧:一种字符串的排序方式
该文介绍了如何对包含数字的字符串列表进行特定排序。首先,示例了一个初始问题,使用Python内置的`sorted()`函数未能达到预期(按数字部分升序排序)。然后,文章提出通过自定义排序键`sort_key`来解决,利用正则表达式提取字符串尾部数字并进行排序。进一步,文章扩展到处理如&#39;nxxx_name_nxxx&#39;格式的字符串,通过给前缀和后缀数字赋予不同权重进行复合排序,展示了如何实现先按前缀、再按后缀排序的功能。提供的代码示例成功地完成了任务。
|
2天前
|
索引 Python
Python字符串的定义与操作详解
Python字符串的定义与操作详解
5 1
|
3天前
|
IDE 开发工具 开发者
Python函数说明文档:编写清晰易懂的文档字符串
Python函数说明文档:编写清晰易懂的文档字符串
7 1
|
3天前
|
机器学习/深度学习 移动开发 知识图谱
|
4天前
|
存储 索引 Python
 Python字符串
 Python字符串
14 0
|
5天前
|
Python
Python字符串格式化
Python字符串格式化
13 0
|
6天前
|
存储 Java 数据处理
Python字符串
Python字符串
13 1
|
6天前
|
存储 缓存 算法
Python中的整数类型
Python中的整数类型
|
13天前
|
索引 Python
Python 字符串格式化
Python 字符串格式化
12 0