2016-11-18 4 views
-1

Поэтому в основном я пытаюсь заменить это:Как это сделать в цикле for?

board = { 
     0:[0, 1, 2, 9, 10, 11, 18, 19, 20], 
     1:[3, 4, 5, 12, 13, 14, 21, 22, 23], 
     2:[6, 7, 8, 15, 16, 17, 24, 25, 26]} 

с для цикла, который будет автоматически создавать его. Извините, если это кажется очевидным, но я немного нуб, и у меня много проблем с этим.

+1

Пожалуйста, покажите ваши попытки, мы можем помочь вам улучшить/исправить их – thefourtheye

+1

привет, что список следующих [х, х + 1, х + 2, х + 9, х + (1 * 9), x + (1 * 9) +1, x + (1 * 9) +2] –

ответ

0
def create_list(x): 
    a = [x,x+1,x+2,x+9,x+9+1,x+9+2,x+18,x+18+1,x+18+2] 
    return a 
output = {} 
for i in range(3): 
    output[i*3] = create_list(i*3) 

print output 

пожалуйста, попробуйте это вы получите желаемого выходного

2

Похоже, вы генерируете первые 27 целых чисел (начиная с 0), а затем сгруппировать их. Давайте напишем так.

def group_by_threes(n=27, group_count=3): 
    # The end result will be a dict of lists. The number of lists 
    # is determined by `group_count`. 
    result = {} 
    for x in range(group_count): 
     result[x] = [] 
    # Since we're using subgroups of 3, we iterate by threes: 
    for x in range(n // 3): 
     base = 3 * x 
     result[x % 3] += [base, base + 1, base + 2] 
    # And give back the answer! 
    return result 

Этот код может быть лучше, делая размер групп (три в данном случае) аргумент, но я оставлю это в качестве упражнения для читателя. ;)

Преимущество этого метода в том, что он гораздо более модульный и адаптируемый, чем просто создание одноразового метода, который генерирует точный список, который вы ищете. В конце концов, если вы только хотели когда-либо создать тот список, который вы показали, то, вероятно, было бы лучше его жестко закодировать!

0
def create_list(x): 
    res = [] 
    for i in xrange(0,3): 
     for j in xrange(0,3): 
     res.append(3*x+ 9*i + j) 
    return res 

dictionary={} 
for i in xrange(0,3): 
    dictionary[i]=create_list(i) 
print dictionary 

Результат:

{0: [0, 1, 2, 9, 10, 11, 18, 19, 20], 1: [3, 4, 5, 12, 13, 14, 21, 22, 23], 2: [6, 7, 8, 15, 16, 17, 24, 25, 26]} 
Смежные вопросы