2012-11-09 115 views
0
liste = [1,2,8,12,19,78,34,197,1,-7,-45,-97,-32,23] 

liste2 = [] 

def repetisjon(liste,liste2): 

    for count in liste: 
     if count > 0: 
      liste2.append(1) 
     elif count < 0: 
      liste2.append(0) 
    return liste2 

    return (liste2) 

print (repetisjon(liste,liste2)) 

重點是更改列表的所有值。如果它大於或等於0,它將被替換爲值1.如果它低於0,它將被替換爲0.但我無法更改當前列表。我找到的唯一解決方案是創建一個新列表。但是,無論如何改變目前的名單,而不是一個新的?我也試過這個,但根本沒有工作:更改列表的值?

liste = [4,8,43,4,78,24,8,45,-78,-6,-7,-3,8,-12,4,36] 
def repe (liste): 
    for count in liste: 
     if count > 0: 
      count == 1 
     else: 
      count == 0 
    print (liste) 

repe(liste) 

回答

0

在這裏,我用轉換的數據替換了liste的內容。由於sameliste指向相同的列表,其值也​​會發生變化。

>>> sameliste = liste = [1,2,8,12,19,78,34,197,1,-7,-45,-97,-32,23] 
>>> sameliste 
[1, 2, 8, 12, 19, 78, 34, 197, 1, -7, -45, -97, -32, 23] 
>>> liste 
[1, 2, 8, 12, 19, 78, 34, 197, 1, -7, -45, -97, -32, 23] 
>>> liste[:] = [int(x >= 0) for x in liste] 
>>> liste 
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1] 
>>> sameliste 
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1] 
>>>