使用for和while循环创建数组-Python 2

2024-09-29 00:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下程序,它成功地创建了一个由零填充的10x20数组:

array2 = []
array2=[[0 for j in range(10)] for i in range(20)]
print array2

然后我尝试对for循环和while循环执行相同的操作:

for j in range(20):
  for i in range(10):
    array1.append(0)
print array1

array3 = []
count = 0
while count <= 20:
  count += 1
  while count <= 10:
    array3.append(0)
    count += 1
print array3

我觉得自己走对了路,但我似乎无法用这些循环创建相同的东西。如何调整这些循环以创建与第一个循环相同的效果? 谢谢您。


Tags: in程序forcountrange数组print效果
3条回答

在第一个数组中,将长度为10的数组添加到更大的数组中。所以你需要创建两个数组。

array1 = []
array2 = []
for j in range(20):
    for i in range(10):
        array1.append(0)
    array2.append(array1)
    array1 = []
print array2

这相当于

array2=[[0 for j in range(10)] for i in range(20)]

您需要在外部for/while循环内创建一个临时列表,您可以在内部for/while循环内填充该列表。

首先:

>>> for j in range(20):
...     temp=[]
...     for i in range(10):
...             temp.append(0)
...     array1.append(temp)
...
>>> array1

第二:

>>> count=0
>>> array3=[]
>>> while count < 20:
...     temp=[]
...     count_inner=0
...     count+=1
...     while count_inner< 10:
...             temp.append(0)
...             count_inner+=1
...     array3.append(temp)
>>> array3

在while循环检查条件下,创建21 X 11矩阵。

在您的第一个示例中,有一个数组数组。如果你看这一行,你会发现你有[[]<;——内部数组]<;——外部数组。

在其他数组中,您只是通过appends创建一个非常长的零数组。 与for循环等价的是如下内容:

arr = []

for i in range(20):
    arr.append([])
    for j in range(10):
        arr[i].append(0)

for thing in arr:
    print thing

相关问题 更多 >