0

这真让我抓狂。我有一个这样的字符串:

Sheridan School III

在这样的列表中:

Sheridan School III
Lake Bluff Elementary II
Barrington IV

我想把尾随部分变成一个变量homeseries

并将之前的部分变为变量homeclub

当我拆分字符串时,我可以得到系列,没问题,如下所示。

但是我不能在.replace字符串中使用该系列,我只想用它来摆脱原始字符串的最后一部分。如何在 .replace 中使用变量?Python 抛出一个错误,我确信有一种简单的方法可以将它作为变量引用。

homeclubfull = "Sheridan School III"
homeclublist = homeclubfull.split(" ")
homeseries = homeclublist[-1:]    # this should return "III"
homeclub=homeclubfull.replace(homeseries,'')
print homeclub, home series

抛出的错误:

import.py:51: TypeError: expected a character buffer object
4

2 回答 2

2

str.rsplit()使用方法和限制从末尾拆分:

homeclub, homeseries = homeclubfull.rsplit(None, 1)

演示:

>>> homeclubfull = "Sheridan School III"
>>> homeclub, homeseries = homeclubfull.rsplit(None, 1)
>>> homeclub
'Sheridan School'
>>> homeseries
'III'

您收到的错误是因为您试图将列表传递给.replace(),而不是字符串;你想要这个:

homeseries = homeclublist[-1]   # Note, no : 

您正在对列表进行切片,而不是选择一个元素。切片结果是一个列表,总是:

>>> homeclubfull.split()[-1:]
['III']
>>> homeclubfull.split()[-1]
'III'
于 2013-04-20T20:52:55.843 回答
0

如果不是homeclublist[-1:]您使用,您的问题将得到解决,homeclublist[-1]因为第一个返回一个列表(它留下一个您可以剥离的尾随空格)。

您也可以在不替换的情况下执行此操作;通过切片列表中您想要的部分而不是您不想要的部分,然后替换:

homeclubfull = "Sheridan School III"
homeclublist = homeclubfull.split()
homeseries = ' '.join(homeclublist[:-1])
print(homeseries)
于 2013-04-20T21:02:23.023 回答