Herkesin gözünden mi kaçmış yoksa ben mi yanlış biliyorum ama istediğiniz şeylerin istediğiniz yolla yapılması pek mümkün değil gibi.
Şöyle ki:
- Python kümelerinin sıra hafızaları yoktur. Yani siz değerleri verseniz bile sıralama olmayacağından verileri doğru bir şekilde değiştirmek de mümkün değil.
- Kümeleri listelere çevirdiğinizi varsayalım, o zaman yine bir problem çıkıyor: demetler değiştirlebilir veri tipleri değillerdir. Ögelerini listeler gibi değiştiremezsiniz. Demeti yeniden tanımlamak bir kaçış yolu fakat siz verileri değiştirebileceğiniz bir veri tipini kullanmak hem daha doğru, hem daha mantıklı olacaktır.
Bu yüzden şöyle bir şeyler yazdım; deneyin, aradığınız ilk şey sanırım bu:
Liste_1 = [[1,2], [3,4], [5,6], [7,8], [9, 10]]
degistirici = (100, 200, 300, 400, 500)
sayac = 0
for i in Liste_1:
i[0] = degistirici[sayac]
sayac += 1
print(Liste_1)
Not düşeyim: Bu uygulamadaki öge sayısını istediğiniz kadar arttırabilirsiniz. Herhangi bir engel teşkil etmez. Tek eksiği, sizin her listedeki ilk ögeyi değiştireceğinizi varsayıyoruz. Yani eğer 2. listedeki "[3, 4]"ü değiştirmek istemez de "[5,6]"dan devam etmek isterseniz bu kodlar yetersiz kalacaktır. Eğer öyle bir sorununuz yoksa sanıyorum ki yeterli bir çözüm bu.
İkinci sorunuz için:
Bu sorunuzda veri tipi olarak demet kullanmanızda sakınca yok gibi.
#Ben yine liste kullandım fakat burada kümeleri de kullanabilirsiniz.
Liste2 = [("tek", 1), ("tek", 3), ("cift", 2), ("cift", 4), ("tek", 5), ("cift", 6), ("cift", 8), ("tek", 7), ("tek", 9), ("cift", 10)]
tekler = []
ciftler = []
for i in Liste2:
if i[0] == "tek":
tekler.append(i[1])
elif i[0] == "cift":
ciftler.append(i[1])
print(tekler)
print(ciftler)
Burada ben, iki farklı çeşitte birinci değer kullandım siz yine istediğiniz kadar çoğaltabilirsiniz. Yine de istediğiniz şeyi bu kodlar tam olarak karşılamıyor sanırsam. Çünkü, demetlerin birinci değerlerini elle liste olarak atadık. Sizin istediğiniz bunun otomatik olarak olması.
Fakat burada iki sorun ortaya çıkıyor:
- İlk değeri string olarak tuttuğumuz için (zaten başka şansımız da yok) bu değerlerden değişken tanımlama imkanımız normal yollardan yok. Bazı ufak hilelerle yapılabildiğini biliyorum. Biraz araştırmanız gerekecek.
- İlk değer eğer string değil de integrer yani sayı olacaksa; sayılar ile değişken ismi Python’da atanamaz.
Son olarak; arkadaşların dediği gibi, aklınızdaki şeyi kodlara döküp paylaşmanız hem bizim anlamamızı kolaylaştırır hem de sizin kodlarınız temel alınarak çözüm üretilmiş olur.
Kolay gelsin.