Python 如何在for循环中生成此特定列表

Python 如何在for循环中生成此特定列表,python,list,for-loop,Python,List,For Loop,我想在某种类型的循环中生成这个零数组,除非有其他方法。下面的前几行正是我想要的输出方式 我不能在循环中复制它,因为append函数不会像我想的那样进行追加。有什么建议吗 编辑:当然,我问问题得-1分。这里的每个问题都必须是外星人级别的情报吗 将numpy作为np导入 #这就是我希望t_in像嵌套列表中的64个零一样。 数组([[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

我想在某种类型的循环中生成这个零数组,除非有其他方法。下面的前几行正是我想要的输出方式

我不能在循环中复制它,因为append函数不会像我想的那样进行追加。有什么建议吗

编辑:当然,我问问题得-1分。这里的每个问题都必须是外星人级别的情报吗


将numpy作为np导入
#这就是我希望t_in像嵌套列表中的64个零一样。
数组([[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]))
打印(t#u in)#看起来不错。
打印(“\n”)
#这是我在列表中尝试做的非工作。
t_in=np.array([])
对于范围(0,64)内的i:
np.append(t_in,[0])
打印(t#u in)#不一样:(

这能解决您的问题吗

>>t_in=[0表示范围内的(64)]
>>>图因
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>>t_in=[t_in]
>>>图因
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>>

不熟悉
numpy
,也许有更好的方法。

为什么要使用循环?只要利用列表的工作方式就可以了

>>> t_in = [[0] * 64]
>>> t_in
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0]]
即使与
np.zero

>>> timeit('[[0]*64]')
1.5534695980022661
>>> timeit('[0 for _ in range(64)]')
10.40757498399762
>>> timeit('numpy.zeros((1, 64))', 'import numpy')
1.732236907002516
>>> #just to compare... let's make np.zeros into a list so each return the same thing.
也就是说,这种方法创建列表项的浅拷贝,因此它们都是相同的对象,尽管在这种情况下这是不相关的


²如果您最终需要一个数组,那么
np.zeros
是最快的,但是如果您只需要一个列表,那么list mul选项是最好的。

为什么要使它比实际更复杂呢。 只需使用numpy提供的工具:

t_in = np.zeros((1, 64))

它的阅读速度比普通python快,而且更简洁。

只要使用:t_in=np.zeros((1,64))或者如果你真的想在循环中使用:t_in=np.append(t_in[0])它一定要在循环中吗?因为在使用numpy时,循环是最糟糕的事情。谢谢@SeanSdahl。我不敢相信像np.zeros()这样的函数存在!lolThank@Paritosh Singh,收到提示!只使用t_in=np更容易。零((1,64))为什么不
t_in=[[0表示范围(64)]]
np比普通电脑快python@splash58只是为了清楚起见。为什么你需要一个满是零的数组来开始呢?不管是什么情况,生成器可能更合适。正如其他人已经指出的,如果OP使用的是
numpy
无论如何都有更好的方法。我不需要对它进行更多的解释和编译arison请查看。另外,如果此答案或任何其他答案已充分回答了您的问题,请在答案左侧用大复选标记!但是numpy方法只需要更长的时间,因为您也对numpy的导入进行了计时。如果您仍然需要numpy,则numpy方法会更快。此外,numpy返回的数组是much更有效。不,我也使用lambdas计时,请参阅。它更快。加上
timeit
只执行语句而不是设置。请参阅我在结尾的注释,因为
np。当您需要数组时,zeros
比list mul方法更快,但如果您需要一个列表,那么这就是。