我正在使用此代碼將單詞分隔成列表。 while循環用於刪除所有出現的空白,它們將只是一個「'的元素。問題是,即使在我運行while循環後,仍然存在僅有''的元素。我相信他們是由於空白和縮進。 while循環確實消除了大約2/3的這些空間。有沒有辦法讓單詞分開?我不想要任何空白元素,因爲當我在後面運行循環時,當我引用mylist[i][0]
時,我得到的字符串索引超出範圍。使用re.split()將字符串分隔爲列表
str = fpin.read()
mylist = re.split('[ \n]', str)
i = 0
while(i < len(mylist)):
if mylist[i] == '':
del mylist[i]
i = i + 1
由於沒有人直接提到它:空的字符串來自兩個空格彼此相鄰,並且兩者之間沒有任何內容。下面的答案會告訴你如何處理。 – leewz
通常,在Python中,通常建議您製作一份正好符合您需要的列表的副本,而不是循環使用現有列表並從中刪除。簡單地使用'.split()'會吃掉多個空白字符,所以你不需要這個,但是這裏有一個例子說明如何用你想要的來創建一個拷貝:'newlist = [x for m in mylist if X]' – steveha