#python #for-loop #dictionary
#python #for-цикл #словарь
Вопрос:
Используя python, у меня есть некоторый код, который выглядит следующим образом:
for (key, value) in files:
...
Рабочий список для вышеуказанного может быть:
files = [(
'key1', 'value1'
), ...]
Теперь я нашел этот код:
for (key, filename, value) in files:
...
Как бы dict искал меня, чтобы получить key
, filename
и value
?
Комментарии:
1.Нет, первый цикл не распаковал бы ваши словари. Это не тот код, который будет работать;
files
ожидается, что это будет список(key, value)
последовательностей.2. @MartijnPieters, отлично. Пропустил это. Я обновил вопрос, хотя, я думаю, вы ясно дали понять…
3. Я думаю, теперь вы знаете, как ответить на это самостоятельно, не так ли? 🙂
4. я уверен … нелегко быть зеленым. спасибо 🙂
Ответ №1:
Вам нужен dict или список, который вы предоставили? Если вы хотите сохранить его в виде списка, вы могли бы просто расширить кортеж, чтобы в нем было три элемента вместо двух, вот так. Я предполагаю, что из вашей формулировки вы хотите знать, как будет выглядеть переменная files, чтобы соответствовать этому циклу. Этого должно быть достаточно:
files = [
('key1', 'file1', 'value1'),
('key2', 'file2', 'value2'),
('key3', 'file3', 'value3')
]
for (key, file, value) in files:
print key, file, value
>>key1 file1 value1
>>key2 file2 value2
>>key3 file3 value3
Если вы хотите, чтобы это был dict, вы, вероятно, захотите отформатировать его следующим образом:
files = {
'key1': ('file1', 'value1'),
'key2': ('file2', 'value2'),
'key3': ('file3', 'value3')
}
for key, value in files.iteritems():
print key, value[0], value[1]
>>key3 file3 value3
>>key2 file2 value2
>>key1 file1 value1
Однако имейте в виду, что dict не будет сохранять порядок элементов, если это важно для вас.