我使用python 2.7,我想減少和優化此代碼行,但我有一個問題,有人可以幫助我嗎?Python的錯誤,當我嘗試優化這些代碼行
我有這個名單B = [[0, Act1, XX1, u'P-Um'],.....[0, Act100, ZZ30, u'D- MOM']]
- 我想只拿從B第4個值
- 只需花費一部分連字符後,有時它是
- 帶回到B的空間
現在我寫這個代碼
for i in range(len(B)):
x.append(B[i][3])
A = [i.split('-',1)[1] for i in x]
#A=[u'Um', u' LY', u' NO', ......, u' MOM']
for i in range(len(B)):
A[i].lstrip()
p = []
for i in range(len(B)):
p.append(A[i].lstrip())
for i in range(len(B)):
B[i][3] = p[i]
當我試圖縮短它時,我有兩個錯誤。
#Short version
for i in range(len(B)):
x.append(B[i][3])
A = [i.split('-',1)[1], x] #Error:AttributeError: 'int' object has no attribute 'split'
B[i][3].append(A[i].lstrip()) #Error:AttributeError: 'unicode' object has no attribute 'append'
我嘗試了很多方法來解決錯誤,但仍然無法正常工作。你能幫忙嗎?你認爲是否有可能使上半部分沒有錯誤?
非常感謝您提前。
停止,你總是覆蓋其值 – RafaelC
此代碼是有點難以明白由於使用一個字母變量名稱。最好使用變量的描述性名稱(通常)。 –
你的列表甚至不工作:有變量,整數和字符串...那麼,你正在分割一個由'range'返回的索引:沒辦法,那麼你將追加到你的一個unicode列表對象:沒有辦法......不清楚...... –