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中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
327 100
|
3月前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
442 99
|
3月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
3月前
|
开发者 Python
Python f-strings:更优雅的字符串格式化技巧
Python f-strings:更优雅的字符串格式化技巧
|
3月前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
3月前
|
Python
使用Python f-strings实现更优雅的字符串格式化
使用Python f-strings实现更优雅的字符串格式化
|
4月前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
288 92
|
2月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
157 4
|
4月前
|
数据采集 存储 数据库
Python字符串全解析:从基础操作到高级技巧
Python字符串处理详解,涵盖基础操作、格式化、编码、正则表达式及性能优化等内容,结合实际案例帮助开发者系统掌握字符串核心技能,提升文本处理与编程效率。
442 0

推荐镜像

更多