Python 只是給了我奇怪的建議:
>>> import random
>>> random.sample({1: 2, 3: 4, 5: 6}, 2)
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
random.sample({1: 2, 3: 4, 5: 6}, 2)
File "C:\Users\*****\AppData\Local\Programs\Python\Python310\lib\random.py", line 466, in sample
raise TypeError("Population must be a sequence. For dicts or sets, use sorted(d).")
TypeError: Population must be a sequence. For dicts or sets, use sorted(d).
請注意最后一個錯誤行的第二部分。如果我稍后要隨機化,為什么要排序?似乎在浪費 O(n log n) 時間。
uj5u.com熱心網友回復:
來自 cpython 的提交歷史——我的重點:github
在未來,人口必須是一個序列。不再支持
:class: 的實體set。該集合必須首先轉換為 :class:list或 :class:tuple,最好按確定性順序轉換,以便樣本可重現。
如果你不關心重現性排序是沒有必要的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/394588.html
下一篇:Swift5結構陣列中的嵌套排序
