Dizi İçinde Dizi Oluşturma ve Dictionary Diziler


Önceki konumuz Diziler'in devamı...

Dizi içinde dizi oluşturma:
var dizi = [
hayvanlar”:[“kelebek”,”civciv”,”at”,”timsah”],
meyveler”:[“vişne”,”kiraz”,”portakal”,”muz”],
nesneler”:[“kalem”,”defter”,”masa”,”sandalye”]
]
Not: Dizi içinde her diziye isim verilebilir.
Meyveler dizisindeki elemanlara ulaşmak için;

dizi[“meyveler”]
print(dizi[“meyveler”]!.count) --> 4
print(dizi[“meyveler”]![2]) --> portakal
dizi[“meyveler”]!.append(“şeftali”)
print(dizi[“meyveler”]![dizi[“meyveler”]!.count-1])
-->şeftali


Dizi içinde bir diziyi silmek;
dizi.removeValue(forKey: “nesneler”)



Dictionary diziler:
index yerine belirtilen ifade kullanılmasıdır.
var iller = [“Ankara”:6, “Erzurum”:25]
print(iller[“Erzurum”]) --> 25


iller.removeValue(forKey:“Erzurum”) //silme
iller[“Manisa”] = 45 //ekleme
iller.updateValue(46, forKey:”Manisa”) //Güncelle

Dizileri Birleştirme
var a = [1,2,3]
var b = [4,5,6]
a.append(contentsOf: b) -> [1,2,3,4,5,6]

var kisiMeslek:[string:string] = [
Ali”:”Polis”,
Ahmet”:”Bekçi”,
Cem:”Aşçı”
]
for (name, job) in kisiMeslek
{
print(“\(name), \(job)”)
}
var kisi = kisiMeslek[“Ahmet”]

Ekstralar
var harfler:[String] = ["A","B","D"]
harfler.swapAt(0, 2) //Sıra değiştirir.
print(harfler) --> ["D", "B", "A"]


let yenidenDuzenleSehirler = ["Adana":"0","Adıyaman":"1","Bursa":"2","Bolu":"4", "Denizli":"5"]
let sonDurum = Dictionary(grouping:yenidenDuzenleSehirler.keys) {$0.first!}
let sayiyaGore = Dictionary(grouping:yenidenDuzenleSehirler.keys) {$0.count}
print(sonDurum)
[“A”:[“Adana”,“Adıyaman”],”B”:[“Bursa”,”Bolu”],”D”:[“Denizli”]]//Baş harfleri
print(sayiyaGore)
[”4”:[“Bolu”], “5”:[“Adana”,”Bursa”],”7”;[“Denizli”],”8”:[“Adıyaman”]]//Karakter sayısı


let names = ["Kenan","İrem","Ali","Defne","Ezgi"]
let grouped = Dictionary(grouping: names, by: { $0.first! })
print(grouped) // ["A": ["Ali"], "K": ["Kenan"], "İ": ["İrem"], "D": ["Defne"], "E": ["Ezgi"]]



let dictt:[String:String] = ["Ankara":"A","İstanbul":"İ"]
let cc = dictt["Ankara",default:"NON"] // "NON"
var arr = [2,4,7,6,4,2,3,5,6]
arr[4...] // [4, 2, 3, 5, 6]
//index numarası 4 dahil daha büyük indexleri getir



let citys = ["Ankara","İstanbul","İzmir","Afyon"]
let dict = Dictionary(uniqueKeysWithValues: zip(1..., citys))
print(dict) // [1: "Ankara", 2: "İstanbul", 3: "İzmir", 4: "Afyon"]
//indexe göre 1 den başlayarak sırala



let duplicates = [("a", 1), ("b", 2), ("a", 3), ("b", 4),("c", 4),("c", 31)]
let letters = Dictionary(duplicates, uniquingKeysWith: { (first, _) in first })
letters // ["b": 2, "a": 1, "c": 4]
//key'leri tekilleştirdik. İlk okunan keyleri aldık.



let nms = ["Kenan":12412,"Ayse":33534,"Ali":54645]
let nms2 = ["John":235346,"David":2425]
let mergedNms = nms.merging(nms2.map {$0}, uniquingKeysWith: {(old,_) in old})
print(mergedNms) // ["Kenan": 12412, "Ali": 54645, "Ayse": 33534, "John": 235346, "David": 2425]
//iki diziyi ikinci dizinin keyleri tekil olacak şekilde birleştirme



let alpDict = ["A":1,"B":7,"C":8,"D":12,"F":20]
let newAlpDict = alpDict.filter {$0.value % 2 == 0}
print(newAlpDict) // ["C": 8, "D": 12, "F": 20]
//value çift olanları filtreleme



let sset:Set = [1,4,6,2,77,43,3,0,32,42,662,0]
let newsset = sset.filter {$0 < 10}
print(newsset) // [6, 0, 2, 4, 3, 1]
//10'dan küçük dizi değerlerini filtreleme