Python String ile Liste İsmi veya Bir Değişken Çağırma

x = 10
y = “123”
z = 52.4

list0 = [x, y, z]
list1 = [y, x, z]
list2 = [z, y, x]
bigdata = []

for i in range(3):
—for j in len((“list”+i)):
-----bigdata.append((“list”+i)[j])

print(bigdata)

Python’da yeni sayılırım ve kafama bir şey takıldı. Saçma gözüktüğünü ve tamamıyle hatalı olduğunu biliyorum ama bunun gibi birşey mümkün mü. Yani bir string ile bir değişkeni çağırma veya bir değişkenin ismini el ile değil de döngüler yardımıyla belirleme.

Burda yapmaya çalıştığım şeyin bigdata = list0 + list1 + list2 ile çok kolay bir şekilde yapılabileceğini ben de biliyorum. Bu sadece aklımdaki şeyi anlatmak için yazdığım kısa bir kod. Benim istediğim bu kodu kısaltmak değil yapmaya çalıştığım şeye benzer herhangi birşey python da var mı yok mu öğrenmek.

NOT: Anlamadığım bir nedenden dolayı for’ların bloklarını göstermek için tab’ a basıp kaydettiğimde boşluk gözükmüyor. O yüzden boşluk yerine çizgi kullandım.

İyi akşamlar dostum.
Sanırım bu koddaki sorun for döngüsü içindeki “list” (Str) + i (int) değerlerini toplayamadığından kaynaklanıyor. Aynı durum append metodunun parametresinde de geçerli. Daha iyi anlamak için şu kod satırını derleyicinde çalıştırabilirsin.
for i in range(3):
----- print (type(i))
print(type(“list”))
Buradaki çıktılardan da anlayacağın üzere str + int yapısı programın hata vermesine neden olacaktır.
Bildiğim kadarıyla cevaplamaya çalıştım.

Sanırım siz benim ne demek istediğimi anlamadınız. Kod zaten hatalı ve hatanın neden kaynaklandığını biliyorum. Benim bilmek istediğim burada göstermeye çalıştığım gibi bir değişkenin ismini manual olarak değil de döngülerle belirlemek ya da zaten olan bir değişkeni bir stringler ile çağırabilmek gibi birşey münkün mü? En azından yazdığıma benzer bir şekilde. (Ek kütüphane ile de olsa olur)

Öncelikle kod görünümü…

Yapmaya çalıştığınız şey gayet mümkün
globals fonksiyonu ile rahatlıkla yapılabilir.
Aslında yazdığımız değişken adları globals fonksiyonu altında toplanan bi sözlükten ibaret,
Yazbel belgelerde detayları anlatılmış. Oraya göz atarsanız daha iyi anlarsınız.
Örneğe gelicek olursak.

for i in range(1, 4):
	globals()["liste"+str(i)] = "deneme" + str(i)

print(liste1)

şöyle bi kod yardımcı olur umarım

1 Like

Cevabınız için çok teşekkür ederim. Kod yazımına da bir dahakine dikkat edeceğim.