行為 1
加入代碼:
print (' '.join(str(list(random.randrange(100) for j in range(4)))))
輸出:
[ 8 2 , 8 3 , 1 2 , 7 1 ]
我的預期是:
[82,83,12,71]
觀察:
我正在使用 list() 函式,因為我需要評估生成器運算式。我認為這是我出錯的地方,我不應該將 list() 與生成器一起使用嗎?
行為2:
代碼:相同的代碼(沒有 list()),但包裹在另一個 for 回圈中:
for _ in range(2**2):
print (' '.join(str(random.randrange(100)) for i in range(4)))
輸出:
98 72 56 63
71 12 45 63
83 91 65 89
31 45 65 95
觀察:
在這里,我得到了預期的輸出。但我不明白為什么這與帶有串列的行為 1 相比會起作用。我的理解是 for 回圈和串列都可以互換使用來強制生成器的輸出。在理解 str() 在行為 2 中取整數但將輸出視為行為 1 的字符序列的差異時,我缺少什么?
uj5u.com熱心網友回復:
代碼#1 連接串列的字串表示,在該字串表示中的每個字符之間放置一個空格。代碼 2 加入了一個字串表示串列,每個表示用空格分隔。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/370923.html
