String和List是Python中最常用的数据类型之一。Python 中的字符串是代表 Unicode 字符的字节数组。Python 没有内置的字符数据类型,但单个字符只是一个长度为 1 的字符串。
Python 字符串到列表
要在Python中把 字符串 转换为列表 ,可以使用**字符串 split()方法。 split()是一个内置的 Python 方法,它可以分割字符串并将它们存储在列表中。然后,它 ,以"分隔符 "**作为分隔符的字符串,返回字符串中的单词列表。
如果定界符没有在函数参数中指定或为 "无",那么将应用不同的分割算法:它的连续空白运行被视为单一分隔符。
如果字符串有前导或尾部的空白,其结果将不包含在字符串的开始或结束处的空字符串。
请看下面的代码例子以了解更多。
# app.py
def stringToList(string):
listRes = list(string.split(" "))
return listRes
strA = "Millie Bobby Brown"
print(stringToList(strA))
请看输出结果。
➜ pyt python3 app.py
['Millie', 'Bobby', 'Brown']
➜ pyt
你可以使用type()函数检查数据类型。
# app.py
def stringToList(string):
listRes = list(string.split(" "))
return listRes
strA = "Millie Bobby Brown"
print(type(stringToList(strA)))
输出结果
➜ pyt python3 app.py
<class 'list'>
➜ pyt
使用 strip() 和 split() 将 Python 字符串转换成列表
strip()方法返回一个字符串的拷贝,并根据传递的字符串参数去除前面和后面的字符。此外,strip()方法根据参数从左边和右边都删除了字符。
请看下面的代码。
# app.py
initial_list = "[11, 21, 29, 46, 19]"
print ("initial string", initial_list)
print (type(initial_list))
op = initial_list.strip('][').split(', ')
print ("final list", op)
print (type(op))
输出
➜ pyt /usr/local/bin/python3 /Users/krunal/Desktop/code/pyt/app.py
initial string [11, 21, 29, 46, 19]
<class 'str'>
final list ['11', '21', '29', '46', '19']
<class 'list'>
➜ pyt
所以,首先,我们定义了一个看起来像列表的字符串。
然后,我们使用strip()和split()方法将字符串转换为列表,最后,我们打印出列表和它的类型,以便进行双重检查。
使用AST(Abstract Syntax Trees)模块进行转换
Python ast模块帮助Python应用程序处理抽象语法树。
抽象语法可能随着每个Python版本的发布而改变;这个模块帮助以编程方式确定当前的语法是什么样子。
抽象语法树可以通过传递 ast.
PyCF_ONLY_AST 作为编译()内置函数的标志,或者使用本模块中提供的解析()辅助函数来生成抽象语法树。
结果将是一棵对象树,其类都继承自 ast 模块。
请看下面的代码示例。
# app.py
import ast
# initializing string representation of a list
ini_list = "[11, 21, 19, 46, 29]"
# printing intialized string of list and its type
print("initial string", ini_list)
print(type(ini_list))
# Converting string to list
res = ast.literal_eval(ini_list)
# printing final result and its type
print("final list", res)
print(type(res))
输出
➜ pyt python3 app.py
initial string [11, 21, 19, 46, 29]
<class 'str'>
final list [11, 21, 19, 46, 29]
<class 'list'>
➜ pyt
使用 json.load() 将 Python 字符串转换成列表
还有第三种方法,使用json.load()方法将 Python 字符串转换为列表。
# app.py
import json
# initializing string representation of a list
initial_list = "[11, 21, 19, 46, 29]"
# printing intialized string of list and its type
print("initial string", initial_list)
print(type(initial_list))
# Converting string to list
op = json.loads(initial_list)
# printing final result and its type
print("final list", op)
print(type(op))
输出
➜ pyt python3 app.py
initial string [11, 21, 19, 46, 29]
<class 'str'>
final list [11, 21, 19, 46, 29]
<class 'list'>
➜ pyt
首先,我们需要导入一个 json 模块,然后使用**json.load()**方法将字符串转换为列表格式。