Birer ötelenmiş sayı dörtlülerinden oluşan liste

[(1,2,3,4), (2,3,4,5), (3,4,5,6), ... (96,97,98,99)]

yukarıdaki gibi bir liste yazdırmak istiyorum, bir türlü beceremedim. yardımlarınız için şimdiden teşekkür ederim.

liste=[]

for i in range(1,97):
    liste.append((i,i+1,i+2,i+3))

print(liste)
1 Beğeni

Liste üreteçlerini kullanarak bunu tek satırda da yapabilirsiniz:

>>> print([(i, i+1, i+2, i+3) for i in range(1, 100)])
[(1, 2, 3, 4), (2, 3, 4, 5), (3, 4, 5, 6), (4, 5, 6, 7), (5, 6, 7, 8), (6, 7, 8, 9), (7, 8, 9, 10), (8, 9, 10, 11), (9,
10, 11, 12), (10, 11, 12, 13), (11, 12, 13, 14), (12, 13, 14, 15), (13, 14, 15, 16), (14, 15, 16, 17), (15, 16, 17, 18),
 (16, 17, 18, 19), (17, 18, 19, 20), (18, 19, 20, 21), (19, 20, 21, 22), (20, 21, 22, 23), (21, 22, 23, 24), (22, 23, 24
, 25), (23, 24, 25, 26), (24, 25, 26, 27), (25, 26, 27, 28), (26, 27, 28, 29), (27, 28, 29, 30), (28, 29, 30, 31), (29,
30, 31, 32), (30, 31, 32, 33), (31, 32, 33, 34), (32, 33, 34, 35), (33, 34, 35, 36), (34, 35, 36, 37), (35, 36, 37, 38),
 (36, 37, 38, 39), (37, 38, 39, 40), (38, 39, 40, 41), (39, 40, 41, 42), (40, 41, 42, 43), (41, 42, 43, 44), (42, 43, 44
, 45), (43, 44, 45, 46), (44, 45, 46, 47), (45, 46, 47, 48), (46, 47, 48, 49), (47, 48, 49, 50), (48, 49, 50, 51), (49,
50, 51, 52), (50, 51, 52, 53), (51, 52, 53, 54), (52, 53, 54, 55), (53, 54, 55, 56), (54, 55, 56, 57), (55, 56, 57, 58),
 (56, 57, 58, 59), (57, 58, 59, 60), (58, 59, 60, 61), (59, 60, 61, 62), (60, 61, 62, 63), (61, 62, 63, 64), (62, 63, 64
, 65), (63, 64, 65, 66), (64, 65, 66, 67), (65, 66, 67, 68), (66, 67, 68, 69), (67, 68, 69, 70), (68, 69, 70, 71), (69,
70, 71, 72), (70, 71, 72, 73), (71, 72, 73, 74), (72, 73, 74, 75), (73, 74, 75, 76), (74, 75, 76, 77), (75, 76, 77, 78),
 (76, 77, 78, 79), (77, 78, 79, 80), (78, 79, 80, 81), (79, 80, 81, 82), (80, 81, 82, 83), (81, 82, 83, 84), (82, 83, 84
, 85), (83, 84, 85, 86), (84, 85, 86, 87), (85, 86, 87, 88), (86, 87, 88, 89), (87, 88, 89, 90), (88, 89, 90, 91), (89,
90, 91, 92), (90, 91, 92, 93), (91, 92, 93, 94), (92, 93, 94, 95), (93, 94, 95, 96), (94, 95, 96, 97), (95, 96, 97, 98),
 (96, 97, 98, 99), (97, 98, 99, 100), (98, 99, 100, 101), (99, 100, 101, 102)]
4 Beğeni

peki mesela birinci sayı 1’den 5’e, ikinci sayı 3’ten 6’ya ve üçüncü sayı 2’den 4’e değerler alsın istersem ne yapmalıyım?

yani [(1,3,2), (1,3,3), (1,4,2), (1,4,3), (1,5,2), (1,5,3), (2,3,2), (2,3,3), (2,4,2), (2,4,3) ...] gibi bir sonuç almak için.

A = []

for i in range(1,6):
	for a in range(3,7):
		for z in range(2,5):
			A.append((i,a,z))
			
			
print(*A)

Böyle bir şey mi demek istediniz?

3 Beğeni

aynen buydu, teşekkür ederim. aslında tek döngü ile yazmaktı asıl amacım. sonra üç döngüye de razı oldum fakat her for döngüsünün içine tekrar append yazdığım için çalışmıyormuş.

@ismailarilik bey bir gönderide iç içe döngü yazmanın doğru olmadığını yazmıştı. ben de şu an tek döngü ile yapmayı deniyorum ama saçmalaya devam ediyorum:

liste = []
for (x,y) in range((5,6)):
    liste.append(x,y)


print(liste)

bunun çalışmayacağını biliyorum ama for (x,y) in range gibi iki değişkeni aynı anda bir döngüye sokmanın mümkün olup olmadığını merak ediyorum.

print(*[(x,y,z)  for x in [1,2,3,4,5] for y in [3,4,5,6] for z in [2,3,4] ])

Tek döngüde nasıl olur bilmiyorum.

2 Beğeni

İçiçe üçten fazla yazmamak lazım demiştim. En iyisi tek döngü ile yapmak diye eklemiştim. Sizin durumunuz için tek döngü ile ya da döngü kullanmadan yapmak mümkün olsa da bu çözümler pek sezgisel olmaz, ya da ilk akla gelen olmaz diyeyim. Tabii kendinizi geliştirdikçe şimdi sezgisel olmayan çözümler sezgisel hale gelmeye başlar. Ancak şu anki durumda en iyisi ilk akla gelen üç döngülü çözümü kullanmak diye düşünüyorum. @_Alparslan_55’in çözümü gayet iyi bir çözüme benziyor.

Mümkündür ancak range fonksiyonu ile olmaz. range’in yerindeki fonksiyonun bir demet ya da liste döndürmesi gerek:

>>> for a, b in [(1, 2), (3, 4), (5, 6)]:
...     print(a, b)
...
1 2
3 4
5 6
>>> for a, b in [[1, 2], [3, 4], [5, 6]]:
...     print(a, b)
...
1 2
3 4
5 6
2 Beğeni

İyi akşamlar, yukarıdaki küme gurubunda kesişim kümesinin boş olduğu kümeleri ayrı yazdırmak istersek nasıl bir kod yazmak gerekir? İlginize teşekkürler.

@alsu yukarıdakiler derken hangi gönderiyi kastediyorsunuz? hangi kümelerin hangi kümelerle kesişiminden bahsettiğiniz tam olarak anlaşılmıyor. böyle durumlarda nasıl bir çıktı almayı beklediğinizi örneklemeniz daha iyi anlaşılmanıza; böylece daha çabuk ve çok sayıda cevap almanıza yardımcı olur.

1 Beğeni