Liste uretecleri map(), filter() ve/veya lambda işlevlerini kullanmadan liste yaratmanın kısa bir yoludur. Bu yolla yaratılan liste tanımı genellikle daha kolay anlaşılır olur. Bir liste ureteci bir ifade ve bir for dongusu ile bunları izleyen sıfır ya da daha fazla for veya if ifadelerinden oluşur. Sonuc kendisini izleyen for ve if bağlamında değerlendirilen ifadeden oluşan bir listedir. Eğer ifade bir demete (değişmez liste [tuple]) donuşecekse parantez icinde yazılmalıdır. >>> freshfruit = [' banana', ' loganberry ', 'passion fruit '] >>> [weapon.strip() for weapon in freshfruit] # elemanları saran boşlukların atıldığı yeni bir liste ['banana', 'loganberry', 'passion fruit'] >>> vec = [2, 4, 6] >>> [3*x for x in vec] [6, 12, 18] >>> [3*x for x in vec if x > 3] [12, 18] >>> [3*x for x in vec if x < 2] [] >>> [ for x in vec] # sozluklerden oluşan bir liste [, , ] >>> [[x,x**2] for x in vec] [[2, 4], [4, 16], [6, 36]] >>> [x, x**2 for x in vec] # hata - demet icin parantez gerekir File "", line 1, in ? [x, x**2 for x in vec] ^ SyntaxError: invalid syntax >>> [(x, x**2) for x in vec] [(2, 4), (4, 16), (6, 36)] >>> vec1 = [2, 4, 6] >>> vec2 = [4, 3, -9] >>> [x*y for x in vec1 for y in vec2] [8, 6, -18, 16, 12, -36, 24, 18, -54] >>> [x+y for x in vec1 for y in vec2] [6, 5, -7, 8, 7, -5, 10, 9, -3] >>> [vec1[i]*vec2[i] for i in range(len(vec1))] [8, 12, -54] Liste ureteclerinin for dongulerine benzer davranması icin, dongu değişkenine yapılan atamalar uretec dışında da gorunurler: >>> x = 100 # bu değişecek >>> [x**3 for x in range(5)] [0, 1, 8, 27, 64] >>> x 4 # range(5) icin son değer >>
__________________
Python - Liste Uretecleri
Programlama0 Mesaj
●41 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama
- Python - Liste Uretecleri