这让我发疯了。我有一个这样的字符串:
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
答案 0 :(得分:2)
使用str.rsplit()
method从最后分割并限制:
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'
答案 1 :(得分:0)
如果您使用homeclublist[-1:]
代替homeclublist[-1]
而不是homeclubfull = "Sheridan School III"
homeclublist = homeclubfull.split()
homeseries = ' '.join(homeclublist[:-1])
print(homeseries)
,那么您的问题就会得到解决,因为第一个返回一个列表(它留下了一个可以删除的尾随空格)。
你也可以不用替换这样做;通过切片所需的列表部分而不是您不想要的部分,然后替换:
{{1}}