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)
4

1 回答 1

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]
>>> 
于 2012-11-10T15:00:16.437 回答