2012-11-09 88 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] 
>>>