[問題] 已解答 random 用 for 與 list 重複

作者: CJhang (Civil Jobs)   2019-04-04 20:25:48
簡單的程式碼,用Python 3 Jupyter Notebook
import random
List = [[0] * 3 ]*5
for m in range(0,5):
for n in range(0,2):
List[m][n] = random.randint(0,1)
print(List)
得到
[[0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0]]
欸不是,為什麼這樣會重複啦
害我只能寫很長一條來切...不然分段都會每段重複...
作者: iphone2003 (307)   2019-04-04 20:46:00
一開始建List的方法改掉就好用list comprehension建吧[[0 for _ in range(3)] for _ in range(5)]
作者: zo6596001 (超帥肥宅)   2019-04-04 21:34:00
你要不要用os.urandom自己轉換??
作者: CJhang (Civil Jobs)   2019-04-04 22:39:00
對欸 直接把random()丟在原本建立0但的地方就好了...list = [random.randint(0,1) for _ in range ()]
作者: germun (ger)   2019-04-05 00:49:00
list第2維不能用*5來建
作者: CJhang (Civil Jobs)   2019-04-05 01:30:00
對 我想也是因為會直接複製到一樣的位置 結果就...

Links booklink

Contact Us: admin [ a t ] ucptt.com