python - 列表不保存其值 - python
问题描述
我对 Python 中的列表有疑问。基于以下用 Pycharm 编写并使用 pypy 解释器的代码,当我清除第一个列表时,第二个列表会丢失其给定值。
def test():
first_list = []
second_list = []
for i in range(10):
first_list.append(i)
if len(first_list)>1:
second_list.append(first_list)
first_list.clear()
for j in range(100,105):
first_list.append(j)
if len(first_list)>1:
second_list.append(first_list)
first_list.clear()
print(second_list)
#output:
[[], []]
解决方案
复制与参考问题。
first_list = []
second_list = []
for i in range(10):
first_list.append(i)
if len(first_list)>1:
second_list.append(first_list[:])
first_list.clear()
for j in range(100,105):
first_list.append(j)
if len(first_list)>1:
second_list.append(first_list[:])
first_list.clear()
print(second_list)
推荐阅读
- python - 将列表的字符串表示形式转换为数据框列中的列表
- vb.net - 如何读取Word模板中的excel对象并转换为表格
- scala - NumberFormatException 空 Scala.js 测试
- mysql - 如何显示每个类别的最后三篇文章?
- for-loop - 如何使这个 VHDL 'for' 循环在 modelsim 上正常工作?
- r - 将数据框列表写入多个 excel 文件
- windows - 同一个 Windows 集群上的更多角色
- android - 编辑 smali 文件
- amazon-web-services - 适用于 DynamoDb 布尔和列表数据类型的 AWS CloudFormation AttributeType
- java - 为什么 Switch 会跳过一个案例并为不同的案例执行错误值的代码