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 に答える