簡體   English   中英

如何用“-”為列表中的一項拆分字符串?

[英]How to split string by “-” for one item in a list?

我有一個包含一個項目的列表,需要用“-”分隔才能訪問數據的最后一段:

a = ['1-35-047-13-6299\t1\n']

通常,我將使用以下調用來做到這一點:

test = a.split("-")

但是,這會產生以下錯誤

>>> a = ['1-35-047-13-6299\t1\n']
>>> a
['1-35-047-13-6299\t1\n']
>>> test = a.split("-")
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
AttributeError: 'list' object has no attribute 'split'
>>> 

如何使用split方法獲取列表項中的最后一段數據,例如“ 6299 \\ t1 \\ n”?

test = a[0].split('-')[-1]
print test

您在這里至少有兩個問題。 一方面,錯誤消息說split期望一個字符串而不是一個列表,但是a是一個字符串列表而不是一個字符串。 因此,在這種情況下, split需要a[0] ,或者一般來說,您可以相信它是字符串。

然后,需要僅分割最右邊的元素。 這就是rsplit目的,可能是使用限制拆分次數的參數。 因此,您想要的底線是:

test = a[0].rsplit('-',1)[1]

如果您的輸入字符串不包含-字符,那么即使失敗也將失敗-捕獲rsplit的整個輸出並檢查其長度,或者在其輸出中使用反向索引都可以防止這種情況。

追溯顯示: 'list' object has no attribute 'split'

“字符串”對象的屬性為“拆分”,可以使用a[i].split('-')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM