python-3.x - 在不使用python中的任何函数的情况下使* n列表的下半部分为零
问题描述
- 我试图通过使用 2 个 for 循环和一个 if 语句来解决它。但我无法获得所需的输出。
输入-
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
thislist=[1]*10
thislist=[thislist]*10
print(thislist)
for i in range(10):
for j in range(10):
print(thislist[i][j], end = " ")
print()
print()
for i in range(10):
for j in range(10):
if i>j:
thislist[i][j]=0
for i in range(10):
for j in range(10):
print(thislist[i][j], end = " ")
print()
这是我得到的输出:
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
- 但是当我使用以下方法制作列表时,我得到了所需的输出。
thislist=[[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1]]
print(thislist)
for i in range(10):
for j in range(10):
if i>j:
thislist[i][j]=0
for i in range(10):
for j in range(10):
print(thislist[i][j], end = " ")
print()
注意-这是所需的输出-
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1
0 0 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 1
有人可以解释上述两个代码之间的区别吗?
解决方案
正如您所指出的,问题来自您创建列表列表的方式。在您的第一个示例中,您执行以下操作:
list1 = [1]*10
list_of_list1=[list1]*10
list_of_list1
实际上是原始的浅list1
拷贝列表。那么如果修改 中的值list_of_list1
,修改将发生在 的所有行中list_of_list1
。
浅拷贝的对立面是深拷贝。您可能想在 Internet 上搜索有关此主题的更多信息
同时,您可以简单地尝试一下。
thislist = []
for row in range(10):
list1 = [1]*10
thislist.append(list1)
但我通常会在可用时使用numpy。
推荐阅读
- https - ESP 8266 在同一个客户端上多次获取调用?
- jhipster - JHipster v7.1.0:欧盟 GDPR 合规性,实施工作最少?
- sql - 如何选择具有相关值的行?
- java - 仅用于命令块的 Spigot 插件命令不输出任何内容或给出任何错误
- reactjs - 具有多个数据集重叠的 React chart2js 折线图
- javascript - Webpack: `export module` 导致模块解析失败: Unexpected token
- c# - 针对逻辑表达式的解析器和计算器的重构建议
- angular - 如何从可拖动的谷歌地图角度保存新位置
- python - 值错误:类应包括所有可以在 y 中的有效标签 - 尝试调用部分拟合时
- javascript - 在角度 8 中单击时加载更多数据