• 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.

VPS Starter Arubacloud
0 głosów
276 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 (251,210 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 (251,210 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ź 326 wizyt
pytanie zadane 14 października 2022 w Python przez Ichbinda Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 231 wizyt
pytanie zadane 16 września 2022 w Python przez kacper1445 Gaduła (4,880 p.)
0 głosów
1 odpowiedź 181 wizyt
pytanie zadane 7 września 2016 w Python przez shadou102 Pasjonat (21,630 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...