SORU
8 Mart 2011, Salı


python yıldız Sisli

İtertools kullanıyorum."bu şekilde liste" listesi: . dümdüz zinciri

uniqueCrossTabs = list(itertools.chain(*uniqueCrossTabs))

ne demek bu daha farklı

uniqueCrossTabs = list(itertools.chain(uniqueCrossTabs))

CEVAP
9 Mart 2011, ÇARŞAMBA


* "" operatörü: girdi olarak bir liste alır ve işlev çağrısı gerçek konumsal bağımsız değişkenleri taşınılır. uyarısı

uniqueCrossTabs [ [ 1, 2 ], [ 3, 4 ] ], eğer öyleyse itertools.chain(*uniqueCrossTabs) itertools.chain([ 1, 2 ], [ 3, 4 ]) söylemekle aynı şeydir

Bu sadece uniqueCrossTabs geçerken gelen açık bir biçimde farklı. Senin durumunda, size bir liste listeleyen istediğiniz için dümdüz; ne itertools.chain() mu iade yineleyici üzerinde birleştirme tüm konumsal bağımsız değişkenleri geçirmek için, her konumsal argüman iterable kendi içinde doğru.

Diğer bir deyişle, size geçmek istiyorum her listesinde uniqueCrossTabs argüman olarak chain(), hangi zincir onlarla birlikte, ama gerek yok listelerinde ayrı değişkenler, yani * operatör Listeyi genişletmek listeleri içine birkaç bağımsız değişken listesi.

Jochen olarak Ritzel iterables tek bir iterable varsayar gibi yorumlar, chain.from_iterable() Bu işlem için daha uygundur, başlamak için işaret etti. Kodunuzu o zaman sadece olur

uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Blendtec

    Blendtec

    30 EKİM 2006
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • RocketJump

    RocketJump

    22 ŞUBAT 2006