如何在Python中把字符串转换为列表(附实例)

1,725 阅读3分钟

数据类型转换是Python语言中最常见的操作。在本教程中,我们将看到如何将Python字符串转换为列表,以及列表转换为字符串。然后,我们将尝试把给定的字符串转换为列表,其中空格或其他特殊字符。

Python字符串到列表

要在Python中把字符串转换为列表,使用字符串split()方法。 split()方法分割字符串并将其存储在列表中。然后,它 ,以**"分隔符 "**作为分隔符的字符串,返回字符串中的单词列表。

如果定界符没有在函数参数中指定,或者是,那么就会应用不同的分割算法:它的连续空白运行被视为单一分隔符。

如果字符串有前导或尾部的空白,其结果将不包含在字符串的开始或结束处的空字符串。

请看下面的代码例子以了解更多:

# 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

你可以使用Python 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()方法将字符串转换为列表格式。

将Python字符串转换为列表数据类型的教程就到此为止。

相关帖子

Python字符串到Int和Int到字符串

Python dict到json

Python字符串转为浮点运算

脚本中的 "我 "与 "我 "之间的关系

列表到JSON