Próbuję pobrać jeden ciąg i dołączyć go do każdego ciągu zawartego na liście, a następnie utworzyć nową listę z ukończonymi ciągami. Przykład:
list = ['foo', 'fob', 'faz', 'funk']
string = 'bar'
*magic*
list2 = ['foobar', 'fobbar', 'fazbar', 'funkbar']
Próbowałem pętli i próby zrozumienia listy, ale to była śmieci. Jak zawsze wszelka pomoc, bardzo ceniona.
list
ponieważ jest wbudowane.Odpowiedzi:
Najprostszym sposobem na to jest zrozumienie listy:
Zauważ, że unikałem używania wbudowanych nazw, takich jak
list
ponieważ ukrywa lub ukrywa wbudowane nazwy, co jest bardzo złe.Ponadto, jeśli tak naprawdę nie potrzebujesz listy, a potrzebujesz tylko iteratora, wyrażenie generatora może być bardziej wydajne (chociaż prawdopodobnie nie ma znaczenia na krótkich listach):
Są to bardzo wydajne, elastyczne i zwięzłe. Każdy dobry programista pythonowy powinien nauczyć się z nich korzystać.
źródło
(s + mystring for s in mylist)
["{}) {}".format(i, s) for i, s in enumerate(mylist)]
list2 = ["mystring" + s for s in mylist]
= =list2 = ['barfoo', 'barfob', 'barfaz', 'barfunk']
Spowoduje to wydrukowanie:
źródło
map
wydaje mi się właściwym narzędziem do pracy.Aby znaleźć więcej przykładów, zobacz tę sekcję na temat funkcjonalnych narzędzi programistycznych
map
.źródło
Przeprowadzenie następującego eksperymentu w pythonowy sposób:
wydaje się być ~ 35% szybszy niż oczywiste użycie pętli for:
Eksperyment
Wyniki
źródło
Rozszerzając nieco do „Dołączanie listy ciągów do listy ciągów”:
Wynik:
dtype odject może być dalej konwertowany str
źródło
at = np.full(fill_value='@',shape=1,dtype=object)
lub po prostu:at = np.array("@", dtype=object)
możesz użyć lambda wewnątrz mapy w Pythonie. napisał generator szarych kodów. https://github.com/rdm750/rdm750.github.io/blob/master/python/gray_code_generator.py # Twój kod idzie tutaj '' 'kod bitowy n-1, z 0 przed każdym słowem, po którym następuje n-1 bitowy kod w odwrotnej kolejności, z 1 dopisanym do każdego słowa. ''
źródło
Aktualizacja o więcej opcji
Unikaj używania słów kluczowych jako zmiennych takich jak „lista”, a zamiast tego zmieniono nazwę „lista” na „lista1”
źródło
Oto prosta odpowiedź przy użyciu
pandas
.źródło
I nie używaj
list
jako nazwy; przesłania wbudowany typ.źródło
'%sbar' % (x,)
zamiast'%sbar' % x
? Dlaczego niex + 'bar'
?Używanie nazw takich jak „lista” dla nazw zmiennych jest złe, ponieważ spowoduje to zastąpienie / zastąpienie wbudowanych funkcji.
źródło
W razie czego
źródło