Python 3.x 在不使用python中的任何函数的情况下,将n*n列表的下半部分设为零 我试图通过使用2个for循环和一个if语句来解决这个问题。但我无法获得所需的输出
输入-Python 3.x 在不使用python中的任何函数的情况下,将n*n列表的下半部分设为零 我试图通过使用2个for循环和一个if语句来解决这个问题。但我无法获得所需的输出,python-3.x,list,matrix,Python 3.x,List,Matrix,输入- 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 这就是我得到的结果: 0 0 0 0 0 0 0 0 0 1 0 0
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
这就是我得到的结果:
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
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
列表1的列表实际上是原始列表1的副本的列表。然后,如果修改列表1的list\u中的值,则修改将发生在列表1的list\u的所有行中
浅拷贝的对立面是深拷贝。您可能希望在Internet上搜索有关此主题的更多信息
同时,你可以试试这个
thislist = []
for row in range(10):
list1 = [1]*10
thislist.append(list1)
但我通常会在numpy可用时使用它。输入是什么?期望的输出是什么?请把你的问题弄清楚。好的,你想要的输出是什么?“n*n的下半部分”是什么意思?
list1 = [1]*10
list_of_list1=[list1]*10
thislist = []
for row in range(10):
list1 = [1]*10
thislist.append(list1)