Rastgele Liste Üretme

Arkadaşlar merhaba ,
sorunum bir for döngüsü içerisinde her adımda rastgele bir değişken üretip bu değişkeni matris olarak tanımlamak istiyorum. Bunu nasıl yapabilirim. Şu şekilde ;

ilk adımda matris1 adında bir değişken üretecek. işlemler bittikten sonra ikince adımda matris2 şeklinde bir matris üretip ikinci adımın sonuçlarını yazacak. Böyle bir şeyi nasıl yapabiliriz. ?

edit : Daha anlaşılır olması için başlığı değiştim

import random

matris1 = random.randint(1, 201) # Kullanım: random.randint(baslangic, bitis)
# 1 ile 200 arasında rastgele sayı ürettik

matris2 = random.randint(1, 1001)

print("Matris1: ", matris1)
print("Matris2: ", matris2)

https://belgeler.yazbel.com/python-istihza/standart_moduller/random.html

cevabınız için teşekkür ederim öncelikle fakat bu tarz bir şey dememiştim. demek istediğim matris1 matris2 matris3 … şeklinde her döngü adeti kadar otomatik bir liste üretip. o döngünün verilerini onun içerisini yazmak.

Şu şekilde ; 1. Adımda Matris1 adında bir liste oluşturuldu işlemler buna yazıldı.
2. Adımda Yeni Matris2 adında bir liste oluşturulup buna değerler yazıldı. Böyle kullanıcıdan bağımsız şekilde , verileri ayırmak istiyorum. umarım anlatabilmişimdir.

Peki, şunun gibi mi?

from random import randint

adet = int(input("Kaç tane üretilsin?: "))
matrisler = list()
print("Üretilenler")
for i in range(adet):
    print(i+1, ". matris:", randint(1, 1001), sep="")

Sanırım ben yine tam anlayamadım, matris1, matris2 şeklinde liste üretip bunların için rastgele sayı girmek mi istiyorsunuz?

aynen öyle. Kusura bakmayın ben ifadede eksiklik ettim :). Her adımda liste üretip ürettiği listeye verileri doldurup diğer adımda başka bir liste üretip bu şekilde devam etmesini istiyorum.

fonksiyon olarak düşündüm fakat çıkan değeri de yine bir şeye atamam gerekti bu da istediğim tarz bir şey olmuyor.

Estağfirullah

O zaman şöyle bir şey yazalım:

import random

liste_sayisi = 7
liste_icerik_sayisi = 3
listeler = list()

for i in range(liste_sayisi):
    liste = list()
    for e in range(liste_icerik_sayisi):
        liste.append(random.randint(1, 1001))
    listeler.append(liste)

İçinde 3 öğeli listeler olan 7 öğeli bir liste oluşturduk.

teşekkür ederim. Bir şey daha sormak istiyorum. Bu tarz bir işlemi while döngüsü ile yapabilir miyiz ? Sayısını bilmediğimiz durumlar için .

Elbette yapabiliriz. Birazdan bilgisayara geçince kod atayım olur mu?

tabi ki :slight_smile: Çünkü döngü adetini tam olarak bilmiyorum.

import random

liste_sayisi        = int(input("Liste Sayısı: "))
liste_icerik_sayisi = int(input("Liste içindeki listelerin sayısı: "))
listeler            = list()
sayac               = 0

while sayac < liste_sayisi:
    sayac += 1
    sayac2 = 0
    liste = list()
    while sayac2 < liste_icerik_sayisi:
        sayac2 += 1
        liste.append(random.randint(1, 1001))
    listeler.append(liste)

print(listeler)

Bu arada biraz ileri seviye ama, for döngüsü şöyle çalışır:

for i in range(10):
    print(i)

# Bu döngü şöyle çalışır:

_ = iter(range(10))
while True:
    try:
        i = next(_)
    except StopIteration:
        break
    print(i)

1 Beğeni

Loop icerisinde uretilen degerleri ayri isimlere sahip tekil degiskenlere atamak gereksiz derecede komplike, hataya acik ve her dilde olmadigi icin ogrenmesiz az degerli bir sey. Neden bunu yapmak istiyorsun?

nedeni aslında şundan kaynaklı. Her adımda hesapladığım değerleri farklı türde değişkenlerde örneğin bir list içinde biriktirip bu listeler üzerinde farklı aşamalarda farklı işlemler yapmak.

Aslında şuan denediğim şey excel üzerinde her sutunda ki veriyi farklı bir list içine doldurmak. sonraki aşamada da bu list leri kullanmak. Genel bir kullanım için sonuçta excell sutunlarının sayısını bilmiyorum kaç adet bir liste ihtiyacım olduğunuda bilmiyorum. Böyle bir şey mümkün müdür diye merak ettim :slight_smile: :slight_smile:

Zaten listelerin amaci sayisi bilinmeyen, degisen verileri tek bir degiskende tutmak. Liste icinde liste tutabilirsin.

Her adimda farkli bir tur deger olusturan kod nasil oluyor?

Iste tam bu noktada liste kullanman lazim.

1 Beğeni