«list-comprehension» etiketlenmiş sorular

Listeleri matematiksel küme oluşturucu gösterimine benzer bir tarzda oluşturmanın özlü bir yolunu sağlayan sözdizimsel bir yapı. Birkaç dil liste anlamalarını desteklediğinden, lütfen bu etiketi bir programlama dilinin etiketi ile birlikte kullanın.

7
İç liste anlayışını kullanan Python
Şöyle bir listem olduğunu varsayalım: mylist = ["a","b","c","d"] Değerleri indeksleriyle birlikte yazdırmak için Python'un bu enumeratefonksiyonunu kullanabilirim >>> for i,j in enumerate(mylist): ... print i,j ... 0 a 1 b 2 c 3 d >>> Şimdi, onu bir içinde kullanmaya çalıştığımda list comprehensionbana bu hatayı veriyor >>> [i,j for i,j …

6
Bir liste anlayışındaki istisnalar nasıl ele alınır?
Python'da her yinelemenin bir istisna oluşturabileceği bir liste anlayışım var. Örneğin , eğer varsa: eggs = (1,3,0,3,2) [1/egg for egg in eggs] ZeroDivisionError3. elementte bir istisna elde edeceğim . Bu istisnayı nasıl ele alabilirim ve liste kavrayışını yürütmeye nasıl devam edebilirim? Aklıma gelen tek yol, yardımcı bir işlev kullanmaktır: def …

6
Anlama listesi, anlama kapsamından sonra bile isimleri yeniden bağlar. Bu doğru mu?
Kavrayışlar, kapsam belirleme ile bazı beklenmedik etkileşimler yaşıyor. Bu beklenen davranış mı? Bir yöntemim var: 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 uid in other_uids] r.remove_user(uid) # OOPS! uid has been re-bound by …

10
Liste öğelerini yazdırmanın Pythonic yolu
Bir Python listesindeki tüm nesneleri yazdırmanın bundan daha iyi bir yolu olup olmadığını bilmek isterim: myList = [Person("Foo"), Person("Bar")] print("\n".join(map(str, myList))) Foo Bar Bu şekilde okudum gerçekten iyi değil: myList = [Person("Foo"), Person("Bar")] for p in myList: print(p) Gibi bir şey yok mu: print(p) for p in myList Değilse, sorum …

7
Pythonic sadece yan etkiler için liste anlamalarını kullanmak mı?
Yan etkileri için çağırdığım bir işlevi düşünün, değerleri döndürmeyin (ekrana yazdırma, GUI'yi güncelleme, bir dosyaya yazdırma vb.). def fun_with_side_effects(x): ...side effects... return y Şimdi, bu işlevi çağırmak için liste anlamalarını kullanmak Pythonic mi? [fun_with_side_effects(x) for x in y if (...conditions...)] Listeyi hiçbir yere kaydetmediğimi unutmayın Yoksa bu func şöyle mi …

2
Pandalardaki for-loop'lar gerçekten kötü mü? Ne zaman umursamalıyım?
Are fordöngüler gerçekten "kötü"? Değilse, hangi durumlarda daha geleneksel bir "vektörleştirilmiş" yaklaşım kullanmaktan daha iyi olurlar? 1 "Vektörleştirme" kavramına ve pandaların hesaplamayı hızlandırmak için vektörleştirilmiş teknikleri nasıl kullandıklarına aşinayım. Vectorized işlevler, veriler üzerinde geleneksel olarak yinelemekten çok daha fazla hızlanma elde etmek için tüm seri veya DataFrame üzerinde operasyonları yayınlar. …

6
Python'da liste kavrama döngüleri için iki çerçeveleme
Aşağıdaki gibi iki listem var tags = [u'man', u'you', u'are', u'awesome'] entries = [[u'man', u'thats'],[ u'right',u'awesome']] Girişleri entriesiçinde bulundukları zamandan çıkarmak istiyorum tags: result = [] for tag in tags: for entry in entries: if tag in entry: result.extend(entry) İki döngüyü tek satırlık liste anlayışı olarak nasıl yazabilirim?

5
If ifadesiyle anlamayı listeleyin
2 yinelenebilirliği karşılaştırmak ve her iki yinelemede görünen öğeleri yazdırmak istiyorum. >>> a = ('q', 'r') >>> b = ('q') # Iterate over a. If y not in b, print y. # I want to see ['r'] printed. >>> print([ y if y not in b for y in a]) …


17
Ruby'de anlama listesi
Python liste anlamalarının eşdeğerini yapmak için şunları yapıyorum: some_array.select{|x| x % 2 == 0 }.collect{|x| x * 3} Bunu yapmanın daha iyi bir yolu var mı ... belki bir yöntem çağrısıyla?



3
Ters işaretler python yorumlayıcısı için ne anlama geliyor: "num"
Liste anlayışlarıyla oynuyorum ve bu küçük parçaya başka bir sitede rastladım: return ''.join([`num` for num in xrange(loop_count)]) Bunu fark etmeden önce (yazarak) işlevi kopyalamak için birkaç dakika harcadım. `num`Bitin onu kırdığını . Bu karakterlerin arasına bir ifade eklemek ne işe yarar? Gördüğüm kadarıyla str (num) ile eşdeğerdir. Ama zamanını belirlediğimde: …



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.