我们在写代码的过程中,会经常使用到for循环,去循环列表,那么如果我们拿到一个类型为str的列表,对它进行for循环,结果看下面的代码和图:
str_list = str(['a','b','c'])
for row in str_list:
print(row)
结果:
Python 字符串类型列表转换成真正列表类型
那么for循环就把str类型的列表的每一个字符都一个一个的循环的打印出来,而这个结果并不是我们想要的,那么如何解决这个问题?,使用到第三方模块,看下面的代码
from ast import literal_eval
# 假设拿到了一个str类型的列表
str_list = str(['a','b','c'])
print(type(str_list)) #
# 通过 literal_eval 这个函数,将str类型的列表转换成类型为list的真正的列表类型
new_list = literal_eval(str_list)
print(type(new_list)) #
# 然后就可以通过for循环获取到列表中的每一个值
for row in new_list:
print(row)
# 执行结果
'''
a
b
c
'''
ast 的literal函数 会判断需要计算的内容计算后是不是合法的python类型,如果是则进行运算,否则就不进行运算
您可能感兴趣的文章:浅谈Python数据类型判断及列表脚本操作Python DataFrame设置/更改列表字段/元素类型的方法深入了解Python数据类型之列表Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】Python数据类型详解(二)列表python3利用ctypes传入一个字符串类型的列表方法Python数据类型之List列表实例详解python内置数据类型之列表操作Python数据类型之列表和元组的方法实例详解Python全栈之列表数据类型详解