Python’da listeden rastgele bir öğeyi nasıl seçebilirim?

Aşağıdaki listeye sahip olduğumu varsayalım: Bu listeden rastgele bir öğe almanın en basit yolu nedir? random.

İlişkili olduğu konular : how to, nasıl

Aşağıdaki listeye sahip olduğumu varsayalım:

foo = ['a', 'b', 'c', 'd', 'e']

Bu listeden rastgele bir öğe almanın en basit yolu nedir?

random.choice() kullanabiliriz:

import random

foo = ['a', 'b', 'c', 'd', 'e']
print(random.choice(foo))

Şifreleme açısından güvenli rastgele seçimler için ise (örneğin, bir sözcük listesinden parola oluşturmak için), secrets.choice() kullanılabilir:

import secrets

foo = ['battery', 'correct', 'horse', 'staple']
print(secrets.choice(foo))

secrets Python 3.6’da geldi. Bu yüzden Python’un eski sürümlerinde random.SystemRandom sınıfı kullanılabilir:

import random

secure_random = random.SystemRandom()
print(secure_random.choice(foo))

Birden fazla rastgele öğe seçmek

Listeden rastgele birden fazla öğe seçmek istiyorsanız, bunun yerine random.sample kullanmanızı öneririm.

import random
listem = {'a', 'b', 'c', 'd', 'e'}         
secme_sayisi = 2                           
rastgele_ogeler = random.sample(listem, secme_sayisi)
ilk_rastgele_oge = rastgele_ogeler[0]
ikinci_rastgele_oge = rastgele_ogeler[1] 

Yine de listeden yalnızca tek bir öğe çekiyorsanız, random.sample kullanmak yerine daha az hantal olan random.choice kullanmak daha mantıklı olacaktır.


Dizine de ihtiyacınız varsa random.randrange kullanın

from random import randrange
random_index = randrange(len(foo))
print(foo[random_index])

Listeden rastgele öğe çıkararak listeyi boşaltma

Liste boşalana kadar rastgele öğeleri çekip listeyi boşaltmak için aşağıdaki kodu kullanabiliriz:

s=set(range(1,6))
import random

while len(s)>0:
  s.remove(random.choice(list(s)))
  print(s)

Bu kodu üç kere çalıştırırsak aşağıdaki çıktıyı alırız:

>>> 
set([1, 3, 4, 5])
set([3, 4, 5])
set([3, 4])
set([4])
set([])
>>> 
set([1, 2, 3, 5])
set([2, 3, 5])
set([2, 3])
set([2])
set([])

>>> 
set([1, 2, 3, 5])
set([1, 2, 3])
set([1, 2])
set([1])
set([])

Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Yazı, Python

Okumaya devam et!

Python’da Modül Nasıl Oluşturulur

Modüller tanımları ve ifadeleri içeren içe aktarılabilir bir dosyadır.

Python’da ekrana yazdırma – print() fonksiyonu

Python’da ekrana yazı yazdırmak için print fonksiyonu kullanılır.

Python assert deyimi

Python’da assert nedir? assert deyimi neredeyse her programlama dilinde bulunur.

Python’da Koleksiyon Türleri

Python’da bir dizi koleksiyon türüne sahibiz.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.