2016-08-13 1 views
0
start = 0 
limit = 100 
count = 10 
total_count = 1000 
pages = {} 
for i in range(1, count+1): 
    pages[i] = start 
    start += limit 
print pages 
{1: 0, 2: 100, 3: 200, 4: 300, 5: 400, 6: 500, 7: 600, 8: 700, 9: 800, 10: 900} 

Как достичь такого же результата, используя понимание словаря? Кажется, я не могу увеличить значение переменной «start» после каждой итерации с пониманием dict.Как я могу увеличить значение переменной в понимании словаря

Можно ли добиться такого же понимания результата?

ответ

2

Использование математики:

pages = {(i+1): 100 * i for i in range(count)} 

С start начинается с нуля и продолжает добавлять 100, мы можем использовать умножение, чтобы найти, где она должна быть в каждой точке. Если start и limit не всегда будут такими, какие они есть, вы все равно можете:

pages = {(i+1): start + (limit * i) for i in range(count)} 
1
start = 0 
limit = 100 
count = 10 
pages2 = {(i + 1): start + i * limit for i in range(count)} 
print pages2 

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

  • Нет связанных вопросов^_^