2013-03-05 6 views
2

Мне нужно заполнить двумерный массив с оценками и шагами зарплаты.Python: заполнить многомерный массив

salaryGrades = [] 
salaryStep = 0 
salaryInc = 1000 

for x in range (0,10): 
    salaryStep+=100000 
    salaryGrades.append([salaryStep]) 
    for x in salaryGrades: 
     salaryInc=+1000 
     x.append([salaryInc]) 


print (salaryGrades) 

Это, очевидно, дает мне неправильный массив. Мне нужно, чтобы каждый массив увеличивался на 10k, а каждый вложенный массив увеличивался на 1000.

т.е. [[10000], [11000], [12000], ...] [20000], [21000] [22000], ...]] до 100k

Как я могу заставить этот код работать, или есть лучший способ?

+0

Что такое ваш вопрос? –

ответ

3

Я хотел бы использовать список понимание:

>>> salaryGrades = [list(range(s, s + 10000, 1000)) for s in range(10000, 100000, 10000)] 
>>> salaryGrades 
[[10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000, 19000], 
[20000, 21000, 22000, 23000, 24000, 25000, 26000, 27000, 28000, 29000], 
[30000, 31000, 32000, 33000, 34000, 35000, 36000, 37000, 38000, 39000], 
[40000, 41000, 42000, 43000, 44000, 45000, 46000, 47000, 48000, 49000], 
[50000, 51000, 52000, 53000, 54000, 55000, 56000, 57000, 58000, 59000], 
[60000, 61000, 62000, 63000, 64000, 65000, 66000, 67000, 68000, 69000], 
[70000, 71000, 72000, 73000, 74000, 75000, 76000, 77000, 78000, 79000], 
[80000, 81000, 82000, 83000, 84000, 85000, 86000, 87000, 88000, 89000], 
[90000, 91000, 92000, 93000, 94000, 95000, 96000, 97000, 98000, 99000]] 
+0

Почему да, да. Конечно, этот синтаксис - слишком короткая рука для меня, чтобы удобно обвести вокруг себя голову. В любом случае, чтобы перевести его в синтаксис, подобный OP? – user2112862

+0

Это сделаю. Тебя ценят. – user2112862

0

Измените код следующим образом:

for y in range (0,8): 
    for x in range (0,9): 
    salaryGrades[y][x] = (y+1)*10000 + x*1000 
2

Вы также могли бы сделать это как Numpy-Onliner.

import numpy as np 

print 1000*np.arange(10,100).reshape((9,10)) 


[[10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000, 19000], 
[20000, 21000, 22000, 23000, 24000, 25000, 26000, 27000, 28000, 29000], 
[30000, 31000, 32000, 33000, 34000, 35000, 36000, 37000, 38000, 39000], 
[40000, 41000, 42000, 43000, 44000, 45000, 46000, 47000, 48000, 49000], 
[50000, 51000, 52000, 53000, 54000, 55000, 56000, 57000, 58000, 59000], 
[60000, 61000, 62000, 63000, 64000, 65000, 66000, 67000, 68000, 69000], 
[70000, 71000, 72000, 73000, 74000, 75000, 76000, 77000, 78000, 79000], 
[80000, 81000, 82000, 83000, 84000, 85000, 86000, 87000, 88000, 89000], 
[90000, 91000, 92000, 93000, 94000, 95000, 96000, 97000, 98000, 99000]] 

Специально для больших массивов это может ускорить ваш код, как перекручивание затем выполняется модулем Numpy, который использует C.

Смежные вопросы