Jak mogę wykonać następujące czynności w Pythonie? row = [unicode(x.strip()) for x in row if x is not None else ''] Głównie: zamień wszystkie Nones na puste ciągi, a następnie pełnić
Konstrukcja składniowa zapewniająca zwięzły sposób tworzenia list w stylu podobnym do matematycznej notacji konstruktora zestawów. Ponieważ kilka języków obsługuje wyrażenia listowe, należy używać tego tagu w połączeniu ze znacznikiem języka programowania.
Jak mogę wykonać następujące czynności w Pythonie? row = [unicode(x.strip()) for x in row if x is not None else ''] Głównie: zamień wszystkie Nones na puste ciągi, a następnie pełnić
Czy istnieje powód, aby preferować używanie zamiast listowego rozumowania map()lub odwrotnie? Czy któryś z nich jest na ogół bardziej wydajny lub uważany za bardziej pytoniczny niż
Chcę stworzyć serię list o różnej długości. Każda lista będzie zawierać ten sam element e, powtarzane nrazy (gdzie n= długość listy). Jak utworzyć listy bez korzystania ze zrozumienia listy [e for number in xrange(n)]dla każdej
Kiedy należy używać wyrażeń generatora, a kiedy używać wyrażeń list w Pythonie? # Generator expression (x*2 for x in range(256)) # List comprehension [x*2 for x in
Czy w Pythonie można utworzyć słownikowe rozumienie (dla kluczy)? Bez zrozumienia listy możesz użyć czegoś takiego: l = [] for n in range(1, 11): l.append(n) Możemy skrócić to do listowego: l = [n for n in range(1, 11)]. Powiedzmy jednak, że chcę ustawić klucze słownika na tę samą wartość....
Jak wszyscy wiemy, istnieje zrozumienie listy [i for i in [1, 2, 3, 4]] i istnieje zrozumienie słownika {i:j for i, j in {1: 'a', 2: 'b'}.items()} ale (i for i in (1, 2, 3)) skończy w generatorze, a nie w tuplezrozumieniu. Dlaczego? Domyślam się, że a tuplejest niezmienne, ale nie wydaje...
Mam listę o zmiennej długości i próbuję znaleźć sposób, aby sprawdzić, czy aktualnie oceniany element listy jest najdłuższym ciągiem zawartym na liście. I używam Python 2.6.1 Na przykład: mylist = ['abc','abcdef','abcd'] for each in mylist: if condition1: do_something() elif...
W Pythonie możesz mieć wiele iteratorów ze zrozumieniem listy, takich jak [(x,y) for x in a for y in b] dla niektórych odpowiednich sekwencji a i b. Zdaję sobie sprawę z semantyki zagnieżdżonej pętli w zrozumieniu list Pythona. Moje pytanie brzmi: czy jeden iterator w rozumieniu może odnosić się...
Mam tę zagnieżdżoną listę: l = [['40', '20', '10', '30'], ['20', '20', '20', '20', '20', '30', '20'], ['30', '20', '30', '50', '10', '30', '20', '20', '20'], ['100', '100'], ['100', '100', '100', '100', '100'], ['100', '100', '100', '100']] Teraz chcę przekonwertować każdy element z listy na...
Posiadając iteratorobiekt, czy istnieje coś szybszego, lepszego lub bardziej poprawnego niż zrozumienie listy, aby uzyskać listę obiektów zwróconych przez iterator? user_list = [user for user in
Chodzi bardziej o składnię rozumienia list w Pythonie. Mam listę, która tworzy listę liczb nieparzystych z danego zakresu: [x for x in range(1, 10) if x % 2] To tworzy filtr - mam listę źródeł, z której usuwam liczby parzyste ( if x % 2). Chciałbym użyć tutaj czegoś takiego jak if-then-else....
W jaki sposób uzyskujesz dostęp do innych zmiennych klasy z listy złożonej w definicji klasy? Poniższe działa w Pythonie 2, ale kończy się niepowodzeniem w Pythonie 3: class Foo: x = 5 y = [x for i in range(1)] Python 3.2 podaje błąd: NameError: global name 'x' is not defined Próbowanie...
Pod względem wydajności w Pythonie jest lista-zrozumienie, czy funkcje podoba map(), filter()i reduce()szybciej niż pętli for? Dlaczego, technicznie rzecz biorąc, działają z prędkością C , podczas gdy pętla for działa z prędkością maszyny wirtualnej Pythona ? Załóżmy, że w grze, którą tworzę,...
Próbuję utworzyć słownik z pliku CSV. Pierwsza kolumna pliku csv zawiera unikalne klucze, a druga kolumna zawiera wartości. Każdy wiersz pliku csv reprezentuje unikalną parę klucz-wartość w słowniku. Próbowałem użyć klas csv.DictReaderi csv.DictWriter, ale mogłem tylko dowiedzieć się, jak...
Załóżmy, że mam taką listę: mylist = ["a","b","c","d"] Aby uzyskać wydrukowane wartości wraz z ich indeksem, mogę użyć enumeratefunkcji Pythona w ten sposób >>> for i,j in enumerate(mylist): ... print i,j ... 0 a 1 b 2 c 3 d >>> Teraz, kiedy próbuję użyć go wewnątrz a list...
Mam trochę list składanych w Pythonie, w których każda iteracja może zgłosić wyjątek. Na przykład , jeśli mam: eggs = (1,3,0,3,2) [1/egg for egg in eggs] W ZeroDivisionErrortrzecim elemencie dostanę wyjątek. Jak mogę obsłużyć ten wyjątek i kontynuować przetwarzanie listy? Jedyny sposób, jaki...
Zrozumienia mają nieoczekiwane interakcje z określaniem zakresu. Czy to jest oczekiwane zachowanie? Mam metodę: def leave_room(self, uid): u = self.user_by_id(uid) r = self.rooms[u.rid] other_uids = [ouid for ouid in r.users_by_id.keys() if ouid != u.uid] other_us = [self.user_by_id(uid) for...
Chciałbym wiedzieć, czy istnieje lepszy sposób na wydrukowanie wszystkich obiektów na liście w Pythonie niż ten: myList = [Person("Foo"), Person("Bar")] print("\n".join(map(str, myList))) Foo Bar Czytam w ten sposób, nie jest to dobre: myList = [Person("Foo"), Person("Bar")] for p in myList:...
Pomyśl o funkcji, którą wywołuję ze względu na jej skutki uboczne, a nie zwracanie wartości (jak drukowanie na ekranie, aktualizacja GUI, drukowanie do pliku itp.). def fun_with_side_effects(x): ...side effects... return y Teraz, czy Pythonic ma używać wyrażeń listowych do wywoływania tej...
Czy forpętle są naprawdę „złe”? Jeśli nie, w jakiej sytuacji byłyby one lepsze niż stosowanie bardziej konwencjonalnego podejścia „wektoryzowanego”? 1 Jestem zaznajomiony z pojęciem „wektoryzacji” i jak pandy wykorzystują techniki wektoryzacji, aby przyspieszyć obliczenia. Funkcje wektoryzowane...