首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用for和while循环创建数组- Python 2

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

Stack Overflow用户
提问于 2016-03-10 22:50:33
回答 3查看 13.1K关注 0票数 1

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

代码语言:javascript
复制
array2 = []
array2=[[0 for j in range(10)] for i in range(20)]
print array2

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

代码语言:javascript
复制
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

我觉得我在正确的轨道上,但我似乎不能用这些循环来创建相同的东西。如何调整这些循环以创建与第一个循环相同的效果?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-10 23:05:57

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

首先:

代码语言:javascript
复制
>>> for j in range(20):
...     temp=[]
...     for i in range(10):
...             temp.append(0)
...     array1.append(temp)
...
>>> array1

第二:

代码语言:javascript
复制
>>> 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矩阵。

票数 2
EN

Stack Overflow用户

发布于 2016-03-10 22:57:17

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

代码语言:javascript
复制
array1 = []
array2 = []
for j in range(20):
    for i in range(10):
        array1.append(0)
    array2.append(array1)
    array1 = []
print array2

这相当于

代码语言:javascript
复制
array2=[[0 for j in range(10)] for i in range(20)]
票数 5
EN

Stack Overflow用户

发布于 2016-03-10 22:59:58

在您的第一个示例中,您得到了一个数组数组。如果你看这行,你可以看到你有[[] <-内部数组]<-外部数组。

在您的其他数组中,您只是创建了一个非常长的从零到追加的数组。与for循环等效的是类似于以下内容的内容:

代码语言:javascript
复制
arr = []

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

for thing in arr:
    print thing
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35919791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档