在 Python 中将一个字符串拆分为多个变量
Split a string into multiple variables in Python
解压缩值以将字符串拆分为多个变量,例如
a, b = my_str.split(' ')
. 该str.split()
方法将字符串拆分为字符串列表,可以在单个声明中将其分配给变量。
主程序
my_str = 'apple banana kiwi' a, b, k = my_str.split(' ') print(a) # 👉️ apple print(b) # 👉️ banana print(k) # 👉️ kiwi
该示例将字符串拆分为每个空格上的字符串列表,但您可以使用任何其他分隔符。
主程序
my_str = 'apple banana kiwi' # 👇️ ['apple', 'banana', 'kiwi'] print(my_str.split(' '))
确保声明的变量与列表中的项目一样多。
例如,如果您只想要列表中的前 2 项,则可以
maxsplit
在调用str.split()
函数时使用参数。
主程序
my_str = 'apple banana kiwi' # 👇️ ['apple', 'banana kiwi'] print(my_str.split(' ', 1)) # 👈️ split string maximum of 1 times a, b = my_str.split(' ', 1) print(a) # 👉️ apple print(b) # 👉️ banana kiwi
str.split ()
方法使用定界符将字符串拆分为子字符串列表。
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 在每次出现分隔符时将字符串拆分为子字符串 |
最大分裂 | 最多maxsplit 完成拆分(可选) |
如果在字符串中找不到分隔符,则返回仅包含 1 个元素的列表。
如果您尝试解包的值多于或少于列表中的值,则会出现错误。
主程序
my_str = 'apple banana kiwi' # ⛔️ ValueError: too many values to unpack (expected 2) a, b = my_str.split(' ')
我们声明了 2 个变量,但列表包含 3 个项目。列表中的变量数和项目数不一致导致错误。
如果您的字符串以特定分隔符开头或结尾,您将在列表中得到空字符串元素。
主程序
my_str = ' apple banana kiwi ' # 👇️ ['', 'apple', 'banana', 'kiwi', ''] print(my_str.split(' '))
您可以使用该filter()
函数从列表中删除任何空字符串。
主程序
my_str = ' apple banana kiwi ' # 👇️ ['', 'apple', 'banana', 'kiwi', ''] print(list(filter(None, my_str.split(' ')))) a, b, k = list(filter(None, my_str.split(' '))) print(a) # 👉️ apple print(b) # 👉️ banana print(k) # 👉️ kiwi
filter函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。
如果您传递
None
函数参数,则 iterable 的所有虚假元素都将被删除。所有不真实的值都被认为是虚假的。Python 中的虚假值是:
- 定义为 falsy 的常量:
None
和False
. 0
任何数字类型的(零)- 空序列和集合:(
""
空字符串),()
(空元组),[]
(空列表),{}
(空字典),set()
(空集),range(0)
(空范围)。
注意filter()
函数返回一个filter
对象,所以我们必须使用list()
类将filter
对象转换为列表。
您还可以将任何其他分隔符传递给该str.split()
方法。这是一个使用逗号的示例。
主程序
my_str = 'apple,banana,kiwi' # 👇️ ['', 'apple', 'banana', 'kiwi', ''] print(my_str.split(',')) a, b, k = my_str.split(',') print(a) # 👉️ apple print(b) # 👉️ banana print(k) # 👉️ kiwi