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