Non sono riuscito a trovare alcun esempio valido su Internet in cui sia possibile vedere la differenza tra loro e perché scegliere l'uno rispetto all'altro.Qual è la differenza tra chain e chain.from_iterable in itertools?
risposta
Il primo si 0 o più argomenti, ciascuno un iterabile, la seconda accetta un argomento che dovrebbe produrre i iterabili:
itertools.chain(list1, list2, list3)
iterables = [list1, list2, list3]
itertools.chain.from_iterable(iterables)
ma iterables
può essere qualsiasi iteratore che produce i iterabili.
def generate_iterables():
for i in range(10):
yield range(i)
itertools.chain.from_iterable(generate_iterables())
Utilizzando la seconda forma è di solito un caso di convenienza, ma perché loop sull'ingresso iterables pigramente, è anche l'unico modo è possibile concatenare un infinita numero di iteratori finite:
def generate_iterables():
while True:
for i in range(5, 10):
yield range(i)
itertools.chain.from_iterable(generate_iterables())
L'esempio sopra vi darà un iterabile che produce un modello ciclico di numeri che non potrà mai fermare, ma non sarà mai consumerà più memoria di quello che richiede una singola range()
chiamata.
fanno cose molto simili. Per il numero ridotto di iterables itertools.chain(*iterables)
e itertools.chain.from_iterable(iterables)
, eseguire in modo simile.
Il vantaggio principale di from_iterables
risiede nella capacità di gestire gran numero (potenzialmente infinito) di iterables poiché sono tenuti tutti non essere disponibili al momento della chiamata.
- 1. Qual è la differenza tra = e: =
- 2. Qual è la differenza tra `##` e `hashCode`?
- 3. Qual è la differenza tra dict() e {}?
- 4. qual è la differenza tra:.! e: r !?
- 5. Qual è la differenza tra Verilog! e ~?
- 6. Qual è la differenza tra ("") e (null)
- 7. Qual è la differenza tra? : e ||
- 8. qual è la differenza tra [[], []] e [[]] * 2
- 9. Qual è la differenza tra $ e $$?
- 10. Qual è la differenza tra " " e ""?
- 11. Qual è la differenza tra {0} e ""?
- 12. Qual è la differenza tra {0} e +?
- 13. Qual è la differenza tra .ToString() e + ""
- 14. Qual è la differenza tra NetFx45WebLink e NetFx45RedistLink
- 15. Qual è la differenza tra "in fp" e "in fp.readlines()"?
- 16. Qual è la differenza tra Metodi e Attributi in Ruby?
- 17. qual è la differenza tra @ id/e @ + id/in android?
- 18. Qual è la differenza tra 'e "in? JavaScript
- 19. Qual è la differenza tra booleano e booleano in Java?
- 20. Qual è la differenza tra target e currenttarget in flex?
- 21. In .NET, qual è la differenza tra AsFoo() e ToFoo()?
- 22. Qual è la differenza tra reindirizzamento e inoltro in Symfony?
- 23. Qual è la differenza tra identità e uguaglianza in OOP?
- 24. Qual è la differenza tra .replace e -replace in powershell?
- 25. Qual è la differenza tra% e %% in un file cmd?
- 26. Qual è la differenza tra `@ Bind` e` @ BindView` in butterknife?
- 27. Qual è la differenza tra ConditionPathExists = e ConditionPathExists = | in systemd?
- 28. Qual è la differenza tra commit() e commitAllowingStateLoss() in Fragments
- 29. Qual è la differenza tra Boxing e AutoBoxing in Java?
- 30. Qual è la differenza tra @observable e @published in polymer.dart?
Non riesco ancora a capirlo. puoi darmi la differenza di output e utilizzare case nella situazione pratica in cui utilizzare cosa – user1994660
@ user1994660: non c'è differenza di uscita. È una differenza * di input *. Rende più facile l'uso di determinati input. –
@ user1994660: Io uso la seconda forma di [questa risposta] (http://stackoverflow.com/questions/12900444/trying-to-add-to-dictionary-values-by-counting-occurrences-in-a-list -di-liste-p/12900577 # 12900577). –