• 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
288 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 (155,460 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 (252,660 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 (155,460 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 (252,660 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 (155,460 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ź 339 wizyt
pytanie zadane 14 października 2022 w Python przez Ichbinda Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 241 wizyt
pytanie zadane 16 września 2022 w Python przez kacper1445 Gaduła (4,880 p.)
0 głosów
1 odpowiedź 185 wizyt
pytanie zadane 7 września 2016 w Python przez shadou102 Pasjonat (21,630 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...