Co jest pythonic sposób przeszukiwać danej listy ['a', 'b', 'c']
dla elementu b
zastąpić ją i włóż kilka pozycji b1, b2, b3
tak, że lista wreszcie brzmi ['a', 'b1', 'b2', 'b3', 'c']
wyszukiwania dla elementu listy i zastąpienie go przez wielu elementów
Odpowiedz
Używanie plaster notacja:
>>> lst = ['a', 'b', 'c']
>>> i = lst.index('b') # This raises ValueError if there's no 'b' in the list.
>>> lst[i:i+1] = 'b1', 'b2', 'b3'
>>> lst
['a', 'b1', 'b2', 'b3', 'c']
UWAGA To zmienia tylko pierwszy element pasujący.
@SteveP., Zobacz [* Listy * sekcji z samouczka w języku Python] (http://docs.python.org/3/tutorial/introduction.html#lists). – falsetru
@SteveP., Ponieważ 'list .__ setitem__ z argumentem obiektu slice 'jest zaimplementowany w ten sposób. Zobacz http://hg.python.org/cpython/file/a3bdbe220f8a/Objects/listobject.c#l579 – falsetru
Dzięki, tego właśnie szukałem. –
Alternatywne podejście: Korzystanie itertools.chain.from_iterable
>>> b = ["b1", "b2", "b3"]
>>> a = ['a', 'b', 'c']
>>> a = [b if x=='b' else [x] for x in a]
>>> a
['a', ['b1', 'b2', 'b3'], 'c']
>>> import itertools
>>> list(itertools.chain.from_iterable(a))
['a', 'b1', 'b2', 'b3', 'c']
>>>
- 1. Sztuczki dla elementów pływających wewnątrz elementów listy
- 2. Wyrównanie elementu div obok elementów listy
- 3. Alternatywne kolory tła dla elementów listy
- 4. Katalog listy w Go
- 5. Pasek wyszukiwania Android blokuje przeciąganie/blokowanie go przez krótki czas
- 6. Python sortowanie listy słowników przez wielu kluczy
- 7. wyłączanie i wyszarzanie elementów listy
- 8. Wyświetlenie elementów potomnych dla elementu Capybara/Poltergeist
- 9. Jak przejść przez wszystkie, oprócz ostatniego elementu listy?
- 10. Korzystanie grep dla wielu wzorców wyszukiwania
- 11. Zastąpienie struktury zawijania deklaracją typu w Go
- 12. zastąpienie wielu wzór linii w sed
- 13. Python - porównywanie elementów listy z elementami "sąsiednimi"
- 14. Używanie elementów listy i indeksów razem
- 15. rubymine projekt wyszukiwania dla pliku przez ścieżkę
- 16. ukończenie Tab w ipython dla elementów listy
- 17. Zastąpienie pojedynczego elementu znaku ciąg C
- 18. C# Pętla przez IEnumerable dla obliczeń, które używa n poprzednich i następnych elementów
- 19. Hibernacja kwerendy dla wielu elementów w kolekcji
- 20. Flex: Buforowanie obrazów w rendererze elementów listy?
- 21. Dodawanie elementów do listy Java
- 22. Dostęp do wielu elementów listy znających ich indeks
- 23. jQuery parzyste/nieparzyste Selektory dla wielu elementów
- 24. Dodanie wielu elementów do już zainicjowanej listy tablic w java
- 25. jQuery wybieranie i filtrowanie elementów wewnątrz elementu
- 26. Opcje dla każdego elementu widoku listy Android
- 27. LINQ pojedynczy() Wyjątek dla 0 lub wielu elementów
- 28. Wydajna metoda wyszukiwania elementów w macierzy MATLAB
- 29. Listy inicjujące C++ dla wielu zmiennych
- 30. Jak grupować według listy elementów?
Co powinno się zdarzyć, jeśli 'B' występuje więcej niż jeden raz? –
w moim konkretnym przypadku gwarantuje, że przedmioty są unikatowe. – greole