• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak zmodyfikować element listy w funkcji.

Object Storage Arubacloud
0 głosów
321 wizyt
pytanie zadane 2 grudnia 2022 w Python przez dedek2 Początkujący (370 p.)

Witam mam zadanie z książki, w którym mam zmodyfikować listę tak, aby przed każdym imieniem było słowo doskonały, ja zrobiłem to w ten sposób, że dodałem wartość string do elementu listy, ale nie zmodyfikowałem tej listy niby to działa ale to nie jest rozwiązanie które mnie satysfakcjonuje. Zadanie tego ode mnie nie wymaga, ale chciał bym też poprzez funkcje, zmodyfikowaną listę dołączyć do nowej pustej listy, wiem jak się przypisuje elementowi listy, nowy element, ale kombinowałem ze wszystkim, z metodą append, z pętlą while i metodą pop, i się pogubiłem. 

def magicy(imiona):
    for imie in imiona:
        wiadomosc = imie
        print(wiadomosc)

def doskonali_magicy(imiona2):
    for imie in imiona2:
        wiadomosc = 'Doskonały ' + imie
        print(wiadomosc) 

lista_imion = ['Wojtek', 'Karol', 'Radek', 'Marcin']
magicy(lista_imion)
doskonali_magicy(lista_imion)

 

1 odpowiedź

+1 głos
odpowiedź 2 grudnia 2022 przez mokrowski Mędrzec (156,220 p.)
edycja 2 grudnia 2022 przez mokrowski
 
Najlepsza
#/usr/bin/env python3

def magicy(imiona):
    print('\n'.join(imiona))
 
def doskonali_magicy(imiona):
    print('\n'.join('Dokonały ' + imie for imie in imiona))
 
lista_imion = ['Wojtek', 'Karol', 'Radek', 'Marcin']
magicy(lista_imion)
doskonali_magicy(lista_imion)

Jeśli chodzi o wyświetlenie... 

#/usr/bin/env python3

def magicy(imiona):
    print('\n'.join(imiona))
 
def doskonali_magicy(imiona):
    return '\n'.join('Dokonały ' + imie for imie in imiona)
 
lista_imion = ['Wojtek', 'Karol', 'Radek', 'Marcin']
magicy(lista_imion)
print(doskonali_magicy(lista_imion))

Jeśli chodzi o modyfikację listy zwracanej z doskonali_magicy(...)

Czytelność i zrozumienie kuleje, ale efekt ten sam....

#/usr/bin/env python3

lista_imion = ['Wojtek', 'Karol', 'Radek', 'Marcin']
print(*lista_imion, *('Doskonały ' + imie for imie in lista_imion), sep='\n')

Za to ostatnie w kodzie.. karał bym :)

itd... 

komentarz 2 grudnia 2022 przez dedek2 Początkujący (370 p.)
Dziękuje
komentarz 2 grudnia 2022 przez VBService Ekspert (254,490 p.)

Join sam w sobie wykonuje iterację wink

def doskonali_magicy(imiona):
    # print('Doskonały', '\nDoskonały '.join(imiona))
    print('Doskonały ' + '\nDoskonały '.join(imiona))

 

komentarz 2 grudnia 2022 przez mokrowski Mędrzec (156,220 p.)

@Vbservice porównaj czytelność i czas wykonania. Wyciągnij wnioski sam. Tu nie chodzi o wyścig jak to zapisać z najmniejszą ilością znaków. Jeśli tak, rozwiązanie będzie inne.

komentarz 2 grudnia 2022 przez dedek2 Początkujący (370 p.)
Dzięki bo ja o join, jeszcze nie miałem pojęcia.
komentarz 2 grudnia 2022 przez VBService Ekspert (254,490 p.)

Naprawdę, czytelność ... ? 

'\n'.join('Dokonały ' + imie for imie in imiona)

'Doskonały', '\nDoskonały '.join(imiona)

jedynie czas wykonywania na i7-9750H 2.59 GHz przy 1000 próbach był na korzyć

for imie in imiona

średnio o 0.01ms ~ 0.013ms szybszy.

komentarz 2 grudnia 2022 przez mokrowski Mędrzec (156,220 p.)

@Vbservice Miałeś 2 x 'Doskonały '. Jak to tłumaczy się w pojęciach domeny rozwiązania? Pomyśl.

komentarz 2 grudnia 2022 przez dedek2 Początkujący (370 p.)
Wybaczcie ale ja raczkuje.

Podobne pytania

0 głosów
1 odpowiedź 365 wizyt
pytanie zadane 14 października 2022 w Python przez Ichbinda Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 280 wizyt
pytanie zadane 16 września 2022 w Python przez kacper1445 Gaduła (4,930 p.)
0 głosów
1 odpowiedź 188 wizyt
pytanie zadane 7 września 2016 w Python przez shadou102 Pasjonat (21,630 p.)

92,678 zapytań

141,582 odpowiedzi

320,062 komentarzy

62,039 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...