Próbuję odnowić element na liście, używając do pętli. Tutaj kod.

x = 90
y = 84
z = 32
list1 = [x, y, z]
for i in list1:
    i = 45

print(list1)

Nie działa jednak tak, jak się spodziewałem, tj. Nie drukuje [45,45,45]. Dlaczego? A jakie jest rozwiązanie innego niż plasterek, aby utworzyć nową listę.

0
user9857389 3 czerwiec 2018, 01:38

3 odpowiedzi

Najlepsza odpowiedź

Przechowywanie wartości listy Jedno pojedynczo w zmiennej {x0}}, a następnie same przypisanie i. i ma taką samą wartość z elementem listy, ale są one całkowicie różne. Przypisanie go nie zmienia listy.

Zamiast tego spróbuj iteracji na liście za pomocą indeksów i ponowne przypisanie samego elementu listy w miejscu.

list1 = [1, 2, 3]

for i in range(len(list1)):
    list1[i] = 45

print(list1)
# [45, 45, 45]
1
BcK 2 czerwiec 2018, 22:52

Jest to alternatywna, prostsza rozwiązanie do osiągnięcia tego, co chcesz, dodając nową liczbę zmiennej, która służy do śledzenia pozycji indeksu, aby zaktualizować na liście / tablicy:

x = 90
y = 84
z = 32

list1 = [x, y, z]
count = 0

for i in list1:
    list1[count] = 45
    count+=1

print(list1)    #output result = [45, 45, 45]  
0
SShah 2 czerwiec 2018, 23:09

Rozwiązanie:

list = [12,43,24]
for n,i in enumerate(list):
    list[n] = 45

print(list) #[45, 45, 45]

"To jest nie tak ->" Ponieważ kiedy robisz, w ... pracujesz z kopią listy

1
Vla Mai 2 czerwiec 2018, 22:48