def hesapla(n):
a = [[i for i in range(1,k)] for k in range(2,n+2)]
b = [x[:-1] + x[::-1] for x in a]
return "\n".join("".join(str(i) for i in sira) for sira in b)
print(hesapla(6))
Duzenleme sonrasi : Asagidaki cozum python 3.9.4 de calisiyor. @lokman,gokce nin uyarisi uzerine farkettik.
Soyle bir cozumum var
def hesapla(n):
a = [[i for i in range(1,k)] for k in range(2,n+2)]
b = [(y:=x + x[::-1],y.pop(len(x)))[0] for x in a]
return "\n".join("".join(str(i) for i in sira) for sira in b)
print(hesapla(6))
######SONUC
#1
#121
#12321
#1234321
#123454321
#12345654321
Burada x[::-1]
, y:=x
ve .pop
ifadelerini kullandik.
x[::-1]
bir listenin tersini geri dondurur (pythonda negatif indexlerin kullanilabilmesi ve indeks olarak aralik verilebildigini unutmayalim)
y:=x
sayesinde bir expressionda (mesela tuple), y yi tanimlayip daha sonra ayni expresson icinde kendisine referans gosterebiliyorum. Bu operatorun adi walrus operatoru
list.pop
methodu ise bir listenin verilen indeksini siliyor
muhtemelen listeleri birlestirmek icin +
yerine list.extend
methodunun kullanilmasi gerekir