我有一個字串串列串列:
master_list = [['my', 'fellow', 'citizens.'], ['forty-four', 'americans', 'have', 'now!', 'taken', 'the', 'presidential', 'oath.']]
我想從每個條目中去除非內部標點符號
new_list = [['my', 'fellow', 'citizens'], ['forty-four', 'americans', 'have', 'now', 'taken', 'the', 'presidential', 'oath']]
使用
.strip('"!,.:;?\'/()&$-')
我計劃通過每個子串列創建某種回圈,然后通過每個元素并將該元素的剝離版本分配給 new_list 中的相同索引,但是當我嘗試使用單個元素執行此操作時,例如
clean_list[0][0] = master_list[0][0].strip('"!,.:;?\'/()&$-')
但我明白了
IndexError: list assignment index out of range
我應該怎么做?
uj5u.com熱心網友回復:
您可以使用嵌套回圈。
master_list = [['my', 'fellow', 'citizens.'], ['forty-four', 'americans', 'have', 'now!', 'taken', 'the', 'presidential', 'oath.']]
for i in range(len(master_list)):
for j in range(len(master_list[i])):
master_list[i][j] = master_list[i][j].strip('"!,.:;?\'/()&$-')
print(master_list)
uj5u.com熱心網友回復:
該split部分是好的。您得到 的原因IndexError是您尚未啟動 list clean_list,因此您所指的元素中不存在任何內容。
您可以clean_list通過回圈遍歷元素master_list并將值添加到其中來創建clean_list:
clean_list = []
for sublist in master_list:
clean_sublist = []
for s in sublist:
clean_sublist.append(s.strip('"!,.:;?\'/()&$-'))
clean_list.append(clean_sublist)
print(clean_list)
或者更簡潔和“Pythonic”的方法是使用嵌套串列理解:
clean_list = [[s.strip('"!,.:;?\'/()&$-') for s in sublist] for sublist in master_list]
uj5u.com熱心網友回復:
你的第一個問題是因為你沒有定義 clean_list
如果您不知道您的嵌套串列 master_list 將有多少個元素,您可以像這樣定義它
clean_list=[]
要將 master_list 中的“已清理”元素添加到 clean_list,您可以使用 Python .append() 方法
clean_list.append(master_list[0][0].strip('"!,.:;?\'/()&$-'))
最后你的coud應該是這樣的:
master_list = [['my', 'fellow', 'citizens.'], ['forty-four', 'americans', 'have', 'now!', 'taken', 'the', 'presidential', 'oath.']]
clean_list=[]
for l in master_list:
l_ = []
for item in l:
l_.append(item.strip('"!,.:;?\'/()&$-'))
clean_list.append(l_)
print(clean_list)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/377725.html
