Python 从列表中拆分邮政编码

Python 从列表中拆分邮政编码,python,list,loops,split,postal-code,Python,List,Loops,Split,Postal Code,我有一个邮政编码列表,我只想返回它的第一部分 postcodes=list(df['postcode'][0:10]) ['EC4V 3EJ','SE1 9DW','W12 7EY','E14 9GA','E17 8ES','N10 3LR','W2 2RH','W3 7ST','W2 1PW','W4 5RG'] 邮政编码中p的: postcodes.append(p.split()[0]) 邮政编码 我希望得到类似于: ['EC4V', 'SE1', 'W12', 'E14' ...]

我有一个邮政编码列表,我只想返回它的第一部分

postcodes=list(df['postcode'][0:10])
['EC4V 3EJ','SE1 9DW','W12 7EY','E14 9GA','E17 8ES','N10 3LR','W2 2RH','W3 7ST','W2 1PW','W4 5RG']

邮政编码中p的
:
postcodes.append(p.split()[0])
邮政编码
我希望得到类似于:

['EC4V', 'SE1', 'W12', 'E14' ...]

但是我的内核一直在循环,它不返回任何东西。

您在一个列表上循环,并在每次迭代中附加到它。您的循环永远不会停止(您循环的每个成员都会向列表中添加另一个元素)。您应该对所需的输出使用列表理解:

[1]中的
:l=['EC4V 3EJ'、'SE1 9DW'、'W12 7EY'、'E14 9GA'、'E17 8ES'、'N10 3LR'、'W2 2RH'、'W3 7ST'、'W2 1PW'、'W4 5RG
...: ']
[2]中的[p.split()[0]表示l中的p]
输出[2]:['EC4V','SE1','W12','E14','E17','N10','W2','W3','W2','W4']

您的问题是,在循环使用邮政编码时,您正在附加到邮政编码。因此,当您不断向每个循环中添加内容时,您永远无法遍历
邮政编码中的所有内容。相反,您可以创建一个新的空列表,例如
modified_postcodes
,您可以将每个修改后的邮政编码附加到该列表中:

modified_postcodes = []
for p in postcodes:
    modified_postcodes.append(p.split()[0])

print(modified_postcodes)
或者,您可以使用pythons
map
方法通过使用
.split()
邮政编码中的每个邮政编码映射到其第一段:


迭代时不要添加到同一列表中。更改为类似于
new\u postcodes.append(p.split()[0])
的内容。可能存在重复的
postcodes = ['EC4V 3EJ', 'SE1 9DW', 'W12 7EY', 'E14 9GA', 'E17 8ES', 'N10 3LR', 'W2 2RH', 'W3 7ST', 'W2 1PW', 'W4 5RG']
res = list(map(lambda p : p.split()[0], postcodes))
print(res)