亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

首次使用后zip變量為空

首次使用后zip變量為空

aluckdog 2019-11-04 11:02:41
Python 3.2.3,使用Idle和Python Shellt = (1,2,3)t2 = (5,6,7)z = zip(t,t2)for x in z :    print(x)結果:(1,5)(2,6)(3,7)緊接著放置完全相同的循環代碼以再次在for循環中顯示z(在上面和下一部分之間不執行任何操作):for x in z :    print(x)結果:(空白,無結果)z仍然存在,因為z結果是<zip object at 0xa8d48ec>我什至可以重新分配要重新壓縮的t,t2,但隨后它只能工作一次,并且只能一次又一次地工作。這是應該如何工作的嗎?在文檔http://docs.python.org/3.2/library/functions.html#zip中沒有提及此內容。
查看完整描述

3 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

這就是在python 3.x中的工作方式。在python2.x中,zip返回一個元組列表,但對于python3.x,zip其itertools.izip行為與python2.x中的行為相同。要恢復python2.x的行為,只需從zip的輸出構造一個列表:


z = list(zip(t,t2))

請注意,在python3.x,大量的內置函數現在返回迭代器而不是列表(map,zip,filter)


查看完整回答
反對 回復 2019-11-04
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

因為zip在Python 3.x中返回迭代器。如果要重新使用它,請list首先使用它:


z = list(zip(t, t2))


查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 517 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號