Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python bignum数组?_Python - Fatal编程技术网

python bignum数组?

python bignum数组?,python,Python,我对python非常陌生 我想要一个正好有10000个大整数的数组(任意精度) 我试着这样做: M = [] M[0] = 1 M[1] = 1 for k in range(2,10001): M[k] = ... 但我得到: IndexError: list assignment index out of range 我应该使用什么数据结构,如何初始化它并为它保留空间?列表初始化不正确 尝试M=[0]*10000。这将为您提供一个正确大小的列表。只需将0替换为您想要的

我对python非常陌生

我想要一个正好有10000个大整数的数组(任意精度)

我试着这样做:

M = []

M[0] = 1
M[1] = 1

for k in range(2,10001):
        M[k] = ...
但我得到:

IndexError: list assignment index out of range

我应该使用什么数据结构,如何初始化它并为它保留空间?

列表初始化不正确


尝试
M=[0]*10000
。这将为您提供一个正确大小的列表。只需将
0
替换为您想要的任何默认值(或随后用正确的值覆盖它)。

列表未正确初始化

尝试
M=[0]*10000
。这将为您提供一个正确大小的列表。只需将
0
替换为您想要的默认值(或随后用正确的值覆盖即可)。

要保留空间:

M = [0] * 10000
然后您可以使用:

M[0]=1 M[1]=1

对于范围(210001)内的k: M[k]=…

要保留空间:

M = [0] * 10000
然后您可以使用:

M[0]=1 M[1]=1

对于范围(210001)内的k:
与JavaScript不同,如果数组元素不存在,则不能按索引分配数组元素。我建议您只需将以下内容附加到数组:

M = []
for k in range(1,10001):
    M.append(k)
如果密钥很重要,您需要任意创建它们,请使用
dict

M = {}
for k in range(1,10001):
    M[k] = ...

与JavaScript不同,如果数组元素不存在,则不能按索引分配数组元素。我建议您只需将以下内容附加到数组:

M = []
for k in range(1,10001):
    M.append(k)
如果密钥很重要,您需要任意创建它们,请使用
dict

M = {}
for k in range(1,10001):
    M[k] = ...

<> P>使用大数组,可以考虑使用NASIC计算包和高效存储和操作大型数组。你可以这样做:

import numpy as np

M = np.arange(10000)
M[:2] = 1
为了保持纯python的风格,我会:

M = list(xrange(10000))
M[0] = 1
M[1] = 1
使用IPython(用于播放python的推荐命令行解释器)的计时:


<> P>使用大数组,可以考虑使用NASIC计算包和高效存储和操作大型数组。你可以这样做:

import numpy as np

M = np.arange(10000)
M[:2] = 1
为了保持纯python的风格,我会:

M = list(xrange(10000))
M[0] = 1
M[1] = 1
使用IPython(用于播放python的推荐命令行解释器)的计时:

代码

m=[]

m、 追加(1)

m、 追加(2)

m、 追加(3)

对于范围(21000)内的k:

印刷品(m)

对于面向对象,这将有利于追加和删除 adv:操作简单,使用方便,灵活性高

代码

m=[]

m、 追加(1)

m、 追加(2)

m、 追加(3)

对于范围(21000)内的k:

印刷品(m)

对于面向对象,这将有利于追加和删除
adv:操作简单,使用方便,灵活性高

下面的答案是正确的,但应该注意的是,这样做并不常见。当你需要的时候,或者当你有了你真正想放进去的数据时,就列出来。下面的答案是正确的,但是应该注意的是,这样做并不常见。只要在需要的时候,或者当您有实际想要放入的可用数据时,就可以创建列表。您的第一个示例最好写为
M=[k代表范围内的k(110001)]
(或者更简单地说:
M=range(110001)
(在python 2.x中)。我只使用列表理解,因为每当您使用for循环和append创建列表时,您应该问问自己列表理解是否合适。@mgilson:我理解。请随意用这些更深入的方法附加到我的答案中。我把它保持得非常简单,因为OP对python的了解不是很深。您的第一个示例最好写为
M=[k代表范围内的k(110001)]
(或者更简单地说:
M=range(110001)
,在Python2.x中)。我只使用列表理解,因为每当您使用for循环和append创建列表时,您应该问问自己列表理解是否合适。@mgilson:我理解。请随意用这些更深入的方法附加到我的答案中。我把它保持得非常简单,因为OP对python的理解不是很深。小心地在这里使用
array
这个词。我会说“这会给你一个正确大小的列表”。我还要解释一下,在python中,“数组”是(稍微)不同的,正确的术语是
list
。(这可能是谷歌搜索时需要了解的有用信息)。小心在此处输入单词
array
。我会说“这会给你一个正确大小的列表”。我还要解释一下,在python中,“数组”是(稍微)不同的,正确的术语是
list
。(这是谷歌搜索时需要了解的有用信息)。