[Çözüldü] Liste/Değişkenden sıralı ve tekrarlanmayan numune almak?

Başlatan 012rev3, 09 Kasım 2016 - 17:54:14

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

012rev3

Arkadaşlar merhaba.
Birkaç deneme yapmama rağmen oluşturduğum değişkenden rastgele olmadan numune almayı başaramadım. Rastgele olmamasının kuralını ya oluşturduğum listenin sıralamasıyla ya da alfabetik sırayla seçilmesini istiyorum.
Örneğin 'kavun', 'karpuz' listesinde kavun ilk seçilecek olan bu listeye 'armut' eklediğimizde listeden ilk seçilecek olan alfabetik sıralamaya göre armut. Listeye '0sifir' eklersem a dan önce 0 olacak.
Yani altalta olacak biçimde çıktı sıralaması = 0sifir,  armut, kavun, karpuz
Örneğimi şuraya göre de değiştirsem neticede orada da random modülü dönüyor. Bu yüzden işimi görmedi.
https://forum.ubuntu-tr.net/index.php?topic=53933.msg606992#msg606992
#!/usr/bin/env python3
import random
liste = ['elma', 'armut', 'kavun', 'karpuz', '0sifir']
for i in random.sample(liste, 1):
    print (i)

Bunu 'random.choice' ile de yapabiliyordum. Yani;
print random.choice(liste)
Neyse. Var mıdır listeden kurallı numune alabilmenin yolu? Belki cevap çok basit ama çözemedim doğrusu.
Ekleme;
kume = set(liste)
for i in range(10):

Küme içerisine aldıysam da liste kendini tekrarlıyor. Eğer on eleman yoksa listede çıkış yapsın mesela, listedeki numuneleri tekrarlamasın.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 09 Kasım 2016 - 19:04:34

Sorunu şu şekilde çözdüm aslında ama alfabetik sıraya dizemedim. Bu çözümü neden görememişim acaba  ??? Çok farklı sularda yüzmüşüm.
Kaynak: http://belgeler.istihza.com/py3/kumeler_ve_dondurulmus_kumeler.html
#!/usr/bin/env python3
liste = ['elma', 'armut', 'kavun', 'karpuz', '0sifir']
for i in set(liste):
    print (i)

Bu sayede hem listedeki elemanlar tekrarlanmıyor(set özelliği 'küme') ayrıca tek tek numune alıyor hem de altalta çıktı veriyor. Tek sorun yukarıda belirttiğim alfabetik sıralamaya göre oluşturmaması.
Aceleci davrandığım için üzgüm.  Eğer alfabetik sıralama çözümü varsa veya bulana kadar konuyu açık tutalım. Yoksa konuyu çözdüldü diye etiketlerim. Biraz daha bekleyelim.
"Her şey mümkün olduğunca basitleştirilmeli ancak sıradanlaştırılmamalıdır." Albert Einstein

ShangriLa


for i in sorted(set(['elma', 'armut', 'kavun', 'karpuz', '0sifir', 'elma', 'kavun'])):
    print(i)
Ubuntu Mate Trusty

012rev3

Terminal ekranından sınıflandırmak durumunda kalmıştım. Bu şekilde sorunsuz çalıştı. Çok teşekkürler.
"Her şey mümkün olduğunca basitleştirilmeli ancak sıradanlaştırılmamalıdır." Albert Einstein