SORU
30 Kasım 2012, Cuma


Nasıl Filtre, Harita kullanımı ve Python 3.3.0 Azaltmak için

Filtre, harita ve azaltmak tamamen Python 2.7.3 çalışın. İşte bir örnek:

>>> def f(x): return x % 2 != 0 and x % 3 != 0

>>> filter(f, range(2, 25))

[5, 7, 11, 13, 17, 19, 23]
>>> def cube(x): return x*x*x

>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def add(x,y): return x y

>>> reduce(add, range(1, 11))
55

Ama Python 3.3.0 aşağıdaki çıktıları alıyorum:

>>> def f(x): return x % 2 != 0 and x % 3 != 0

>>> filter(f, range(2, 25))
<filter object at 0x0000000002C14908>
>>> def cube(x): return x*x*x

>>> map(cube, range(1, 11))
<map object at 0x0000000002C82B70>
>>> def add(x,y): return x y

>>> reduce(add, range(1, 11))
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    reduce(add, range(1, 11))
NameError: name 'reduce' is not defined

Eğer biri bunun nedenini bana açıklayabilir sevinirim.

Daha fazla açıklık için bir kod ekran görüntüsü: http://i.imgur.com/WekeD.png

CEVAP
30 Kasım 2012, Cuma


What's New In Python 3.0 değişiklikler hakkında bilgi edinebilirsiniz. 2 taşıdığınızda iyice okumalısın.3 x.x'den beri çok şey değişti.

Bütün cevap burada belgeleri teklif.

Views And Iterators Instead Of Lists

Tanınmış API artık dönüş bazı listeler:

  • [...]
  • map() filter() dönüş kullanımına. Eğer gerçekten ihtiyacınız olan bir liste, bir hızlı bir düzeltme, örneğin list(map(...)) ama daha iyi bir düzeltme olduğunu sık sık kullanın bir liste üreteci (özellikle orijinal kodu kullanır lambda), veya yeniden yazma kodu bu değil ihtiyaç listesi. Özellikle zor map() fonksiyon ve yan etkiler için çağrılan; doğru dönüşüm for düzenli bir döngü bir listesini oluşturmak sadece gereksiz olacağından () kullanmaktır.
  • [...]

Builtins

  • [...]
  • Kaldırıldı reduce(). Eğer gerçekten ihtiyacınız varsa functools.reduce() kullanın; ancak, yüzde 99 kez for açık bir döngü daha okunabilir olur.
  • [...]

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Defence Videos

    Defence Vide

    13 Mayıs 2013
  • jat4011

    jat4011

    16 EKİM 2010
  • The Computer Chronicles

    The Computer

    7 Kasım 2012