Skocz do zawartości

Funkcja w python modyfikowanie listy


Pomocna odpowiedź

Napisano

Czy jest jakaś funkcja w python które daje podane liczby na końcu listy?

Chodzi mi o to że mam stworzyć program który zbierze liczy od użytkownika a w wypadku gdy poda on 0 to 0 ma być dane na końcu talbilicy inaczej 

Input 2,3,0,6,0

Output(2,3,3,0,0)

już sie chwalę

otóż nie wiem czy jest jakas funkcja ale ja to zrobiłam tak:

list=[]
k=0
y=int(input('podaj ile liczb'))
for i in range(y):
    x=input("podaj liczbe")
    list.insert(i,x)
    if x=='0':
        list.remove(x)
        k+=1
for d in range(k):
    list.append('0')
        
        
print(list)

 

Przede wszystkim coś w stylu:

if x:
  lista.append(x)
else:
  k += 1

Dalej poczytaj o tym o czym napisałem.

Masz napisać program w pythonie więc używaj konstrukcji pythonowych. A to, że coś działa to może być przypadek.

14 godzin temu, faustin napisał:

już sie chwalę

otóż nie wiem czy jest jakas funkcja ale ja to zrobiłam tak:


list=[]
k=0
y=int(input('podaj ile liczb'))
for i in range(y):
    x=input("podaj liczbe")
    list.insert(i,x)
    if x=='0':
        list.remove(x)
        k+=1
for d in range(k):
    list.append('0')
        
        
print(list)

 

Nazywanie zmiennej list nie jest najlepszą praktyką, bo ukrywa wbudowaną funkcję o takiej samej nazwie.

Możliwe rozwiązanie, które byłoby bardziej "pytoniczne", to użycie list comprehension:

s = input("Enter numbers separated by spaces: ")
data = [int(i) for i in s.split()]
output = [i for i in data if i != 0]
output += [0] * (len(data) - len(output))
print(output)

 

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...