的代碼片段刪除多數民衆贊成搞亂:循環複製列表,並從原來的列表中刪除從複製列表
equ2 = ['+', '10', '+', '2', '-', '2', '+', '4']
flag4 = [ ]
for k in equ2[:]:
if equ2[equ2.index(k)-1] == '+':
del(equ2[equ2.index(k)])
flag4.append('-' + k)
elif equ2[equ2.index(k)-1] == '-':
del(equ2[equ2.index(k)])
flag4.append('+' + k)
print flag4
*編輯:我搞砸了的變量,我們對此深感抱歉:X
* EDIT2 :對不起再次d:jedwards,這是我得到的輸出,我從複製列表中刪除了其他輸出
輸出我得到:
['-10', '-2', '--', '-2', '-4']
輸出我想:
['-10', '-2', '+'2, '-4']
我想通了,當它到了「 - 」,它會檢查原始列表(現修改爲+ - 2 + 4),並看到面前的項目「 - '是一個'+',所以它附加' - ',然後再次檢查原始列表(現在+ 2 + 4)並在2之前看到'+',所以它附加'-2'(修復它本身)之後)。它是否始終檢查原始列表?
您可以發佈您確切的代碼,至少部分地方'equ2'和在那裏你打印輸出'flag4'設置呢?用'equ2 =「10 + 2 - 2 + 4」運行代碼; flag4 = list()'並且打印'flag4'不會產生你所說的輸出。 – jedwards
編輯後,輸出*我*得到:'['-10','-2',' - ','-2','-4']' – jedwards