我有一个列表,其中包含如下所示的字符串。我已经使用""
将全局空间中的mylist
定义为字符串。
mylist = ""
mylist = ["1.22.43.45"]
我收到一个执行错误,指出拆分操作是不可能的,因为它是在列表而不是字符串上执行的。
mylist.rsplit(".",1)[-1]
我尝试使用以下代码解决它:
str(mylist.rsplit(".",1)[-1]
这是最好的方法吗?我想要的输出是45
.我正在拆分字符串并访问最后一个元素。任何帮助,不胜感激。
mylist=["1.22.43.45"]
newstring = mylist[0].rsplit(".",1)[-1]
首先选择列表中的元素,然后拆分,然后选择拆分中的最后一个元素
仅仅因为你先分配了mylist = ""
,并不意味着它会将列表转换为字符串。您刚刚将变量重新分配为指向列表而不是空字符串。
您可以使用以下方法完成所需的操作:
mylist = ["1.22.43.45"]
mylist[-1].rsplit('.', 1)[-1]
这将从列表中获取最后一项并尝试对其执行 rsplit。当然,如果列表为空,或者列表中的最后一项不是字符串,这将不起作用。例如,您可能希望将其包装在try/except 块中以捕获IndexError。
编辑:在末尾添加了[-1]索引以从拆分中获取最后一个列表项,因为rsplit()
返回一个列表,而不是一个字符串。查看DrBwts的答案
您可以通过索引运算符访问第一个元素(在本例中为字符串([]
mylist[0].rsplit(".", 1)[-1]