python列表遍历 空列表_Python list列表执行reversed()后执行pop()返回迭代对象遍历为空问题...
生活随笔
收集整理的這篇文章主要介紹了
python列表遍历 空列表_Python list列表执行reversed()后执行pop()返回迭代对象遍历为空问题...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、示例代碼
1)一般情況s = [1,2,3]
t = reversed(s)
for i in t:
print(i)
# 輸出: 3,2,1
2) 執(zhí)行pop()s = [1,2,3]
t = reversed(s)
s.pop()
for i in t:
print(i)
# 期望輸出 : 2, 1
# 實際什么都沒輸出:
2、問題原因及示例代碼
返回的迭代器本質(zhì)上需要知道最后一個索引的位置和列表的長度。如果更改了列表的大小,則迭代器將不再起作用。
1)增加列表長度s = [1,2,3]
t = reversed(s)
s.append(4)
for i in t:
print(i)
# 輸出: [3, 2, 1]
#雖然結(jié)果不正確,但迭代器會運行
2)減小列表長度然后在增加,保持長度不變s = [1,2,3]
t = reversed(s)
s.pop()
s.append(4)
for i in t:
print(i)
# 輸出: [4, 2, 1]
3)總結(jié)
所以如果該更改使得列表的狀態(tài)與創(chuàng)建迭代器時不同,則如果大小減小則什么也不會得到,如果增大則列表不完整。
總結(jié)
以上是生活随笔為你收集整理的python列表遍历 空列表_Python list列表执行reversed()后执行pop()返回迭代对象遍历为空问题...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git 版本管理工具命令速查
- 下一篇: Git Push 避免输入用户名和密码方