2010-05-25 121 views
3

如何在Python代碼中定義整數的數組Python中的整數數組

說這個代碼是否正確。或者沒有

pos = [int] 

len = 99 

for i in range (0,99): 
    pos[i]=7 
+1

也許你應該解釋一下你的目標。填寫這樣的清單並不太常見。 – 2010-05-25 04:19:28

+0

你不需要在Python中聲明類型。 '[int]'定義了一個元素的列表,這個元素是'int'類型(作爲第一類對象本身)。 – Santa 2010-05-25 06:15:15

回答

0

一種方法是:

pos = [7 for _ in xrange(0,99)] 
在Python 2

或:

pos = [7 for _ in range(0,99)] 

在Python 3這些都是list comprehensions,且易於擴展爲更復雜的工作。

另外:

pos = [int] 

並沒有太大的意義。你正在創建一個只有int類型的元素的列表。

+0

'xrange(0,99)== xrange(99)':第一個元素默認爲零! – EOL 2010-05-25 06:54:37

3

你不申報的蟒蛇變量的類型,所以沒有pos=[int] 所有你需要做的:

pos=[] 
for i in range(99): 
    pos.append(7) 
11

爲什麼不乾脆:

pos = [7] * 99 

這是最Python的,在我的想法。

2

你可以簡單地做

pos = [7] * 99 
print pos #will print the whole array [7, 7, .... 7] 
5
import array 

pos = array.array('l', 7 * [99]) 

array模塊Python的標準庫是使一個陣列附帶的Python(第三方模塊numpy提供其他方式的必由之路,但需要單獨下載和安裝) - 您的Q正在做什麼以及目前的每個答案是構建一個list,而不是array

尤其是沒有了pos名單內置在你的Q和幾個作爲約束只包含整數 - 同時,與片斷我給你做得到這個約束(32位有符號整數這種情況下,確切地說),這嚴格限制你,但也保存了一堆內存(整數數組應該佔用一個列表填充整數的內存量的五分之一,除非在內存中有很多長年重複列表中的項目)。

順便說一句,如果你說array當你的意思list(以防萬一list你的意思),你肯定會造成很多混亂的 - 他說:你的意思,並意味着你說什麼,幫助很多在清晰的溝通,毫不奇怪! - )

+4

'0 <=概率(「OP表示array.array,而不是列表」| code_in_the_question) 2010-05-25 07:42:38

1

如果你只是想聲明數組,你有蟒蛇做的是:

pos = [] 

如果你想以填補99 7的數組:

pos = [7] * 99 

如果你想根據一個模式來填充陣列:

pos = [i for i in range(99)]