У меня есть словарь, который выглядит следующим образом:Для проходного только части словаря Python
[2, ["aaa", "bbb"]]
[10, ["ccc", "ddd"]]
[1, ["eee", "fff"]]
[9, ["ggg", "hhh"]]
[4, ["iii", "jjj"]]
[8, ["kkk", "lll"]]
...
У меня есть цикл, который перебирает отсортированный (на основе ключей в порядке возрастания) словарь:
for i in sorted(dict):
print "%s %s" % (dict[i][0], dict[i][1])
И вывод должен быть:
eee fff
aaa bbb
iii jjj
kkk lll
ggg hhh
ccc ddd
...
Однако цикл прямо сейчас петли через каждые си ngle element. Но если я хочу только пройти, например, первые 4, как мне это сделать? Выход будет:
eee fff
aaa bbb
iii jjj
kkk lll
Я знаю, что этот метод называется диапазон, но это, по-видимому, не работает:
for i in range(4)
print "%s %s" % (dict[i][0], dict[i][1])
Как это исправить?
Инициализируйте счетчик перед циклом, увеличивайте его с каждой итерацией и 'break', когда он' 4'. – TigerhawkT3
Незначительная коррекция: это не словарь python. Но вы наверняка уже знали это;) – gustafbstrom
Причина, по которой ваша попытка не работает, заключается в том, что 'для i в отсортированном (dict)' итерации по каждой клавише, тогда как 'for i в диапазоне (4)' выполняет итерации по номерам от 0 до 4 (не включая 4). Похоже, что ваши словарные ключи не включают '0',' 1', '2' и' 3'. – TigerhawkT3