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

Aruba Cloud - Virtual Private Server VPS
0 głosów
490 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 (158,200 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 (256,600 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 (158,200 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 (256,600 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 (158,200 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ź 448 wizyt
pytanie zadane 14 października 2022 w Python przez Ichbinda Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 518 wizyt
pytanie zadane 16 września 2022 w Python przez kacper1445 Mądrala (5,050 p.)
0 głosów
1 odpowiedź 219 wizyt
pytanie zadane 7 września 2016 w Python przez shadou102 Pasjonat (21,690 p.)

93,335 zapytań

142,331 odpowiedzi

322,415 komentarzy

62,670 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...