Python 3.5 rawak.masalah shuffle
世界只因有你
世界只因有你 2017-05-18 10:48:52
0
2
1251

Apabila menjana senarai rawak, fungsi random.shuffle() digunakan Soalan berikut timbul tentang panggilan fungsi ini:
Jika senarai ditakrifkan secara eksplisit, seperti li = [], fungsi shuffle boleh menjana yang diingini. Hasilnya;
Tetapi jika senarai(julat(n)) digunakan sebagai parameter shuffle, Tiada akan dikembalikan Seperti yang ditunjukkan dalam rajah:

Apa yang berlaku? Mereka semua tergolong dalam kategori senarai

世界只因有你
世界只因有你

membalas semua(2)
黄舟
>>> help(random.shuffle)
Help on method shuffle in module random:

shuffle(x, random=None) method of random.Random instance
    Shuffle list x in place, and return None.

    Optional argument random is a 0-argument function returning a
    random float in [0.0, 1.0); if it is the default None, the
    standard random.random will be used.

Adalah disebut dalam dokumen bahawa jika list对象, 则直接作用鱼listobjek

diberikan
>>> a = list(range(20))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> random.shuffle(a)

>>> a  # a的值已改变
[1, 6, 3, 15, 0, 5, 19, 10, 7, 18, 4, 2, 12, 14, 8, 16, 9, 11, 13, 17]
>>>
Peter_Zhu

Oleh kerana random.shuffle() akan bertindak secara langsung pada list itu sendiri dan tidak akan mengembalikan sebarang nilai, jadi hasil pernyataan pertama anda adalah Tiada Tetapi dalam random.shuffle(li), anda mencetak senarai li, yang dengan sendirinya telah diubah. Jika anda menulis begini random.shuffle()会直接作用于list本身,而不会返回任何值,所以你第一个语句的结果会是None.但是在random.shuffle(li)的时候,你打印的是li这个列表,它本身就被改变了。如果你这样写

li = random.shuffle(li)

那么一样会返回None.所以想要得到list(range(20))shuffle操作过后的值,需要先给它一个变量名,在被shuffle

li = random.shuffle(li)🎜
🎜Kemudian ia masih akan mengembalikan Tiada Jadi jika anda ingin mendapatkan nilai list(20) selepas dikendalikan oleh shuffle. , anda perlu memberikannya dahulu Nama pembolehubah yang anda boleh akses hanya selepas shuffle dikendalikan. 🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan