首页 > 解决方案 > 在 for 循环中使用 .split() 函数引用自己的参数

问题描述

我正在尝试以以下格式拆分给定的字符串输入:

automobile car manufacturer maker children kids

并将其转换为如下列表:

[['automobile','car'],['manufacturer', 'maker'], ['children', 'kids']]

外部列表基本上应该用三个空格分隔,而内部列表应该是单个空格。

我的代码:

replacement_pairs = input().split('   ')
for p in replacement_pairs:
    p = p.split(' ')
print(replacement_pairs)

改为返回:

['automobile car', 'manufacturer maker', 'children kids']

标签: pythonfor-loopsplit

解决方案


使用简单的列表推导

data = 'automobile car   manufacturer maker   children kids'

replacement_pairs = [group.split(' ') for group in data.split('   ')]

print(replacement_pairs)

结果:

[['automobile', 'car'], ['manufacturer', 'maker'], ['children', 'kids']]

在您当前的代码中:

    p = p.split(' ')

是一个无操作,因为p它只是在下一次迭代中被分配给下一个元素。你不能对它做任何分配。一个简单的解决方法是使用累积列表而不是赋值:

replacement_pairs = input().split('   ')
result = []
for p in replacement_pairs:
    result.append(p.split(' '))
print(result)

推荐阅读