为什么python中的.split不适用于双括号列表



我试图理解为什么双括号列表在使用.split((时会抛出错误。如果我不能去掉双括号,还有什么其他方法可以拆分双括号和单括号列表?

示例:

y = (['3801 - 2', '123 + 49'])
print(type(y))
for i in y:
print(i.split(' '))

输出:

<class 'list'>
['3801', '-', '2']
['123', '+', '49']

x = ([['3801 - 2', '123 + 49']])
print(type(x))
for i in x:
print(i.split(' '))

输出:

<class 'list'>
AttributeError: 'list' object has no attribute 'split'

因为在列表中有一个列表。迭代只分解最外层的列表,其唯一元素是另一个列表(不支持split方法(。

您可以使用嵌套循环:

for j in y:
for i in j:
i.split()

或者访问第一个元素:

for i in y[0]:
i.split()

拆分方法适用于字符串

在第一种情况下,您在列表中循环并在中拆分字符串

在第二种情况下,您在包含另一个列表的列表中循环,因此您尝试拆分该列表,而不是其中的字符串。这是一个错误,因为列表不能拆分。

列表已拆分:(

最新更新