2017-07-24 60 views
0

你好,我有一個列表,列表中的每個項目在開頭都有相同的字符。我如何刪除這些字符。 「SiteName ........................................」從列表中刪除字符

我試過使用result.split()會引發錯誤。這是到目前爲止我的代碼及以下

createlist = open('ztest12.txt', 'r') 
result = [line.split(',') for line in createlist.readlines()] 
print result 




[['Site Name........................................ Denver\n'], 
['Site Name........................................ DenverOutdoor\n'], 
['Site Name........................................ Dietzenbach\n'], 
['Site Name........................................ EG3\n'], 
['Site Name........................................ Edina\n'], 
['Site Name........................................ Hongkong\n'], 
['Site Name........................................ Honolulu\n'], 
['Site Name........................................ HooneePlace\n'], 
['Site Name........................................ Juarez\n'], 
['Site Name........................................ KansasCity\n'], 
['Site Name........................................ Kent\n'], 
['Site Name........................................ LA\n'], 
['Site Name........................................ Lanham\n'], 
['Site Name........................................ Lebanon\n'], 
['Site Name........................................ Lockbourne\n'], 
['Site Name........................................ London\n'], 
['Site Name........................................ Mesa\n'], 
['Site Name........................................ Minneapolis\n'], 
['Site Name........................................ NewMexico\n'], 
['Site Name........................................ NewYork']] 
+0

Is [slicing](http://pythoncentral.io/cutting-and-slicing-strings-in-python/)該字符串是您的選項嗎? –

回答

0

輸出就切出來:

with open('ztest12.txt', 'r') as f: 
    result = [line[50:].rstrip() for line in f] 
0

我看到兩個選項:

  • 乾淨的:使用正則表達式

  • 又快又髒一個:

    乾淨=行[50:]#保持所有字符50

0

使用 「切片」 觀後:

>>> x = "Hello World!" 

>>> x[2:] 

'llo World!' 

>>> x[:2] 

'He' 

希望它能幫助。

0

你試圖用逗號分割你的字符串,但是其中有沒有逗號。不管怎樣,這是replace工作,不split

createlist = open('ztest12.txt', 'r') 
result = [ line.replace('Site Name........................................ ', '') for line in createlist ] 
0

您可以使用str.rsplit()來實現:

>>> data = [['Site Name........................................ Denver\n'], 
['Site Name........................................ DenverOutdoor\n'], 
['Site Name........................................ Dietzenbach\n'], 
['Site Name........................................ EG3\n'], 
['Site Name........................................ Edina\n'], 
['Site Name........................................ Hongkong\n'], 
['Site Name........................................ Honolulu\n'], 
['Site Name........................................ HooneePlace\n'], 
['Site Name........................................ Juarez\n'], 
['Site Name........................................ KansasCity\n'], 
['Site Name........................................ Kent\n'], 
['Site Name........................................ LA\n'], 
['Site Name........................................ Lanham\n'], 
['Site Name........................................ Lebanon\n'], 
['Site Name........................................ Lockbourne\n'], 
['Site Name........................................ London\n'], 
['Site Name........................................ Mesa\n'], 
['Site Name........................................ Minneapolis\n'], 
['Site Name........................................ NewMexico\n'], 
['Site Name........................................ NewYork']] 
>>> 
>>> [[s[0].rsplit('.')[-1]] for s in data] 
[[' Denver\n'], 
[' DenverOutdoor\n'], 
[' Dietzenbach\n'], 
[' EG3\n'], 
[' Edina\n'], 
[' Hongkong\n'], 
[' Honolulu\n'], 
[' HooneePlace\n'], 
[' Juarez\n'], 
[' KansasCity\n'], 
[' Kent\n'], 
[' LA\n'], 
[' Lanham\n'], 
[' Lebanon\n'], 
[' Lockbourne\n'], 
[' London\n'], 
[' Mesa\n'], 
[' Minneapolis\n'], 
[' NewMexico\n'], 
[' NewYork']] 
>>> 

也許更強大的解決方案然而,是使用re.sub()

>>> from re import sub 
>>> 
>>> [[sub('Site Name\.*', '', s[0])] for s in data] 
[[' Denver\n'], 
[' DenverOutdoor\n'], 
[' Dietzenbach\n'], 
[' EG3\n'], 
[' Edina\n'], 
[' Hongkong\n'], 
[' Honolulu\n'], 
[' HooneePlace\n'], 
[' Juarez\n'], 
[' KansasCity\n'], 
[' Kent\n'], 
[' LA\n'], 
[' Lanham\n'], 
[' Lebanon\n'], 
[' Lockbourne\n'], 
[' London\n'], 
[' Mesa\n'], 
[' Minneapolis\n'], 
[' NewMexico\n'], 
[' NewYork']] 
>>>