[]

Pythondan anlayan?

Merhaba Duyuru!

Yaz aktivitesi olarak Python öğreniyorum ancak doğru çözümü bulamadığım bir syntax sorunum var.

Şimdi, ben istiyorum ki, elimdeki değişken sayısı uzunluğunda a{i} değişkeni oluşturayım. Daha sonrasında bu a{i} değişkeni, bir fonksiyondan değer alsın.

from inventory import inventory_amount, inventory_code
from cost_35 import cost_amount, cost_code

check = []
for i in range(1, len(inventory_code)):
check.append(str("a"+str(i)))

for i in range(1, len(inventory_code)):
ai=(inventory_amount[i]>=cost_amount[i])

Burada a{i} oluşturma ve değer atama şeklimin yanlış olduğunu biliyorum ve doğru yolunu bulamadım. Syntax'a hakim değilim. Bunu nasıl yapmalıyım?

Çok teşekkür ederim!

edit:typo

 
Hocam önce 2 noktadan bahsedeyim, {} işareti ile dict oluşturuyorsunuz, liste oluşturmak istiyorsanız [] kullanmanız lazım. İkisi arasındaki fark şu:

Listede elemanları arka arkaya koyabiliyorsunuz, ['a', 'b', 'c'] gibi. Elemanlara ulaştırken list[0] derseniz sonucunuz 'a' olur.

dict kullanırsanız key'li elemanlar koyabilirsiniz, {'a': 5, 'b': 3} gibi. Elemanlara ulaşırken dict['a'] derseniz sonucunuz 5 olur.

Sorunuzdan tam olarak ne yapmaya çalıştığınızı anlamadım. Ama diyelim ki bir listeye, bir takım elemanlar atmak istiyorsunuz. Şöyle bir şey yapabilirsiniz:

inventory_code = ['a', 'b', 'c'] olsun. func_call'da aynı harfi 2'li dönen bir fonksiyon olsun. ("a" => "aa" gibi)

// liste oluşturuyorum
l = []

// -> inventory_code listesini geziyorum, i dediğim inventory_code listesinden bir eleman. Sırayla 'a', 'b', 'c' diye gidiyor.
for i in range inventory_code:

// -> i elemanını fonksiyona gönderiyorum, bana bir sonuç dönüyor, dönen sonucu l listesinin sonuna ekliyorum.
l.append(func_call(i))

Sonuç, l = ["aa", "bb", "cc"] olacak.

Bunu liste değil de dict kullanarak yapmak istediğinizi düşünelim.

// dict oluşturma
d = {}

// inventory_code listesini gezme aynı
for i in range inventory_code:

// şimdi, key'li bir şekilde dict'e ekliyorum
d[i] = func_call(i)

Burada sonuç da: d = {"a": "aa", "b": "bb", "c": "cc"} olacak.

Dediğim gibi tam ne yapmak istediğiniz anlamadım. Böyle sorular sorarken örnek input ve output verirseniz tam ne yapmak istediğiniz daha rahat anlaşılır. Ayrıca list ve dict farklı şeyler, hangisine ihtiyacınız olduğunu da anlamadığım için ikisini de yazdım.

Umarım işinize yarar.
  • garry  (28.06.20 13:08:02 ~ 13:09:09) 
Arkadaşlar, ikinize de çok teşekkür ederim. Yapmaya çalıştığım şey, her bir a1=True, a2=False gibi değişkenler elde edip, if ile nerede hata olduğuna dair mesaj vermek. Inventory_amount vs. tamamı liste.

dict kullanımını anlattığınız için ayırca teşekkür ederim. Matlab ve R syntax'ına alışkınım, Python'da nasıl hareket etmem gerektiğini bilmiyorum. ilk denemem desem yanlış olmaz. Liste'yi, vektör olarak kullanmaya çalıştığım için de sorun yaşıyorum sanırım.

@benaaymi listteki eleman eksikiliğini hatırlattığınız için teşekkür ederim. Fark etmemiştim.
@garry açıklamanız için çok teşekkür ederim Hocam.
  • E.  (28.06.20 13:29:04) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.