Python Dictionary Kullanımı
Python Dictionary Kullanımı
Merhabalar, bu yazımızda python dilinde dictionary yöntemi nasıl kullanılır onu inceleyeceğiz. Bunun için yazmış olduğum iki kodu açıkladım ve çıktılarının görsellerini paylaştım. Hadi yazımızı okumaya başlayalım.
Dictionary, veri değerlerini anahtar:değer çiftlerinde depolamak için kullanılır. Dictionary veri yapısı json veri yapısına oldukça benzerdir.
Bunun en önemli özelliği zaman karmaşıklığının düşük olması diyebiliriz. Bunun için Stackoverflow'da Yacobi adında kullanıcın yazmış olduğu yazıyı sizlere aktarmak isterim.
Python dict bir karma haritadır, bu nedenle en kötü durumu, karma işlevi kötüyse ve çok sayıda çarpışmayla sonuçlanırsa O(n) olur. Ancak bu, eklenen her öğenin aynı karmaya sahip olduğu ve bu nedenle büyük bir Python uygulaması için son derece olası olmayan aynı zincire eklendiği çok nadir bir durumdur. Ortalama zaman karmaşıklığı elbette O(1)'dir.En iyi yöntem, kullandığınız nesnelerin karmalarını kontrol etmek ve bunlara bakmak olacaktır. CPython Dict, hash(o)'nun eşdeğeri olan int PyObject_Hash (PyObject *o) kullanır.Hızlı bir kontrolden sonra, aynı değere sahip iki demet bulmayı henüz başaramadım, bu da aramanın O(1) olduğunu gösterir.
Şimdi örneklerimizle yazımı (syntax) nasıl, nasıl kullanılır görelim.
Örnek 1
#Burada ilk dictionary denememizi yapıyoruz.
# \ In here I'm doing my first experience on this.
#Burada kullanıcıları ekliyorum.
# \ I'm adding users in here.
users = {
'mfgstudio': {
'age': 22,
'email': 'm.farukgul@gmail.com',
'real_name': 'Mehmet Faruk Gul',
'career': 'Computer Engineer'
},
'johnw': {
'age': 44,
'email': 'johnwick@gmail.com',
'real_name': 'John Wick',
'career': 'Computer Engineer'
}
}
#Burada mfgstudio kullancısını çağırıyorum, içeride ne olduğunu görebilmek için.
# \ I am calling mfgstudio in here, to see what's inside.
print(users['mfgstudio'])
Burada gördüğünüz üzere kullanıcımız bir değere bir veya daha fazla değer girebiliyor, anahtar değer olayını daha iyi anladığınızı düşünüyorum. Mesela burada üstte bulunan 'johnw' adlı kişinin yaşını, mailini kütüphane mantığıyla isteyebiliyoruz. Bunun için ekstra bir listeye vs. ihtiyacımız olmuyor. Kütüphane formatıyla hepsini birbirine bağlayabiliyoruz.
Çıktımız ne onu görelim.
Çıktı
Burada böyle bir çıktı vermektedir.
Şimdi buradan 'johnw' abimizin mailini ve asıl ismini isteyelim.
Üstte kodun kendisi, altta da çıktısı bulunmaktadır. |
Örnek 2
#Şimdi iki tane fonksiyon yaparak otomatik olarak ekleyeceğiz sözlüğümüze.
# \ Now we are going to do an function to add into the dictionary.
users = {}
# Burada sözlüğe ekleme yapan bir fonksiyon yaptım.
# \ In here I made a function for adding to the dictionary.
def add_to_dict(name, age, email, real_name, career):
users.update({
name: {
"age": age,
"email": email,
"real_name": real_name,
"career": career
}
})
# Burada kullanıcıdan değer alacağız.
# \ In here we are going to get values from user.
def get_values_from_user():
name = input("İsim giriniz: ")
age = input("Yaş giriniz: ")
email = input("E-mail giriniz:")
real_name = input("Gerçek adınızı giriniz: ")
career = input("Mesleğinizi giriniz: ")
# Sözlüğümüze ekliyoruz.
# \ Now adding to our dictionary.
add_to_dict(name, age, email, real_name, career)
# Kullanıcıdan sözlük verisi alacağım ilk başta.
#\ First I will get values from user.
get_values_from_user()
print(users)
Burada üstte gösterdiğim sözlük olayının fonksiyonlara döktüm. İşleri biraz daha kolaylaştırması amacıyla yaptım tabi ki bunu. İlk başta kullanıcıdan değerleri alıyoruz, devamında ise kütüphane listemize eklememizi yapıyoruz. Bu şekilde işlemlerimiz biraz daha kolaylaşmış oluyor. Hemen şimdi bir ekleme işlemi yapalım ve çıktısını ekranda gösterelim.
Çıktı
Burada da çıktılarımız bu şekildedir. Ben bunu işyerinde veya kendimi geliştirmek adına yaptığım projelerde kullanmayı düşünüyorum. Sizlerinde ihtiyacı var ise bunu kullanabilir, üzerinde kendinize göre geliştirmeler yapabilirsiniz. İyi çalışmalar dilerim.
John Wick'in mesleği gerçeğe daha uygun olabilirmiş ama yine de faydalı bilgiler için çok teşekkürler :)
YanıtlaSilBir sonraki yazımda düzenlemeler yapacağım :) Abimizle özel olarak görüşüyorum 'kvkk' konularını :)
Sil