python - 为什么循环中的赋值语句在python中只执行一次
问题描述
我认为这与我的 C 语言习惯不同。我想每次都执行赋值语句,那该怎么做呢?
输入
a = [0,1,2,3,4,5]
for i in range(6):
b = a
print(len(b))
c = b.pop(i)
输出
6
5
4
3
Exception has occurred: IndexError
pop index out of range
好像b = a
只执行一次。
我想得到的答案是:
6
6
6
6
6
6
我不想改变b
长度。
解决方案
首先,您没有使用numpy
,因此无需导入它。
其次,您认为的“赋值”在 Python 中并不存在。相反,您将名称 绑定到也绑定到b
的值。a
实际上,您的代码与此之间没有区别:
a = [0,1,2,3,4,5]
for i in range(6):
print(len(a))
c = a.pop(i)
如果你想要一个副本,你需要明确地创建一个:
a = [0,1,2,3,4,5]
for i in range(6):
b = a[:] # or b = a.copy()
print(len(b))
c = b.pop(i)
输出:
6
6
6
6
6
6
推荐阅读
- python - Scrapy SitemapSpider在干净关闭后不继续
- sql-server - 将时间从 1530 转换为下午 3:30 时间格式 SQL Server
- algorithm - 如何使用滚动、俯仰和偏航更新 GPS 坐标?
- excel - 遍历工作簿中的所有工作表,并将存储为文本的数字更改为数字
- visual-studio-2019 - 如何在 Visual Studio 2019 - Live Share 帐户中更新密码?
- html - 视口之外的背景颜色?
- google-maps - 如何用谷歌地图构建这个产品?
- html - CSS 伪元素位于其后的其他内联元素之上
- swift - 网络开始加载问题
- php - RSS 不会在 PHP 中解析(尝试过 file_get_contents、curl 和 simplexml_load_file)