Nie mogłem znaleźć żadnego ważnego przykładu w Internecie, w którym widzę różnicę między nimi a tym, dlaczego wybrać jeden nad drugim.Jaka jest różnica między chain a chain.from_iterable w itertools?
Odpowiedz
Pierwszy ma wartość 0 lub więcej argumentów, każdorazowo oznaczają iterowalny, drugi jeden argument która ma do wytworzenia iterables:
itertools.chain(list1, list2, list3)
iterables = [list1, list2, list3]
itertools.chain.from_iterable(iterables)
ale iterables
może być dowolny iteracyjnej, że otrzymuje się iterables.
def generate_iterables():
for i in range(10):
yield range(i)
itertools.chain.from_iterable(generate_iterables())
Korzystanie z drugiego formularza jest zwykle przypadek wygody, ale dlatego, że pętle nad wejściem iterables leniwie, jest to również jedyny sposób można łańcuch nieskończony ilość skończonych iteratorów:
def generate_iterables():
while True:
for i in range(5, 10):
yield range(i)
itertools.chain.from_iterable(generate_iterables())
powyższy przykład daje iterowalny który daje cykliczny wzór numerów, które nigdy nie zatrzyma się, ale nigdy nie zużywa więcej pamięci niż to, co wymaga pojedyncza range()
wezwanie.
Robią bardzo podobne rzeczy. Dla małej liczby iteracji itertools.chain(*iterables)
i itertools.chain.from_iterable(iterables)
działają podobnie.
Główną zaletą from_iterables
jest możliwość obsługi dużej (potencjalnie nieskończonej) liczby iteracji, ponieważ wszystkie z nich nie muszą być dostępne w czasie połączenia.
- 1. Jaka jest różnica między == a === w Verilog?
- 2. Jaka jest różnica między $ a a $$ a w php?
- 3. Jaka jest różnica między Ember.computed.alias a Ember.binding?
- 4. Jaka jest różnica między pakietem a intencją?
- 5. Jaka jest różnica między krotką a kompresją?
- 6. Jaka jest różnica między uchwytem a wątkiem?
- 7. Jaka jest różnica między cancelBubble a stopPropagation?
- 8. Jaka jest różnica między HAVING a WHERE?
- 9. Jaka jest różnica między użytkownikiem a rolą?
- 10. Jaka jest różnica między StudlyCaps a CamelCase?
- 11. Jaka jest różnica między Const a Constant?
- 12. Jaka jest różnica między @Inject a @PersistenceContext?
- 13. Jaka jest różnica między preferredLocalization a preferredLanguage?
- 14. Jaka jest różnica między JavaBean a POJO?
- 15. Jaka jest różnica między podprocesiem.popen a podprocesią.run?
- 16. Jaka jest różnica między funkcjami a zamknięciami?
- 17. Jaka jest różnica między ramką a ramką?
- 18. Jaka jest różnica między hashowaniem a indeksowaniem?
- 19. Jaka jest różnica między UIViewController a UITableViewController
- 20. Jaka jest różnica między przyszłym a shared_future?
- 21. Jaka jest różnica między tasklet a workqueue
- 22. Jaka jest różnica między Listą a ArrayList?
- 23. Jaka jest różnica między PermGenem a Metaspace?
- 24. Jaka jest różnica między Dispatcher.BeginInvoke a Task.Factory.StartNew
- 25. Jaka jest różnica między SUMĄ a SUBTOTALEM?
- 26. jaka jest różnica między CONTENT_FILTER_URI a CONTENT_URI?
- 27. Jaka jest różnica między process.cwd() a __dirname?
- 28. Jaka jest różnica między ItemTemplate a ItemPanelTemplate?
- 29. Jaka jest różnica między spark.sql.shuffle.partitions a spark.default.parallelism?
- 30. Jaka jest różnica między spin_lock a raw_spin_lock()?
Nadal nie mogę go pobrać. czy możesz podać różnicę wyjściową i przypadek użycia w praktycznej sytuacji, w której używasz tego, co – user1994660
@ użytkownik1994660: nie ma różnicy wyjściowej. To różnica * wejścia *. Ułatwia korzystanie z niektórych danych wejściowych. –
@ user1994660: Używam drugiego formularza w [tej odpowiedzi] (http://stackoverflow.com/questions/12900444/trying-to-add-to-dictionary-values-by-counting-occurrences-in-a-list -of-list-p/12900577 # 12900577). –