Тема: Поястіть мені код Python (dict)

Поясніть мені що робить цей код, бо в Пітоні я нічого не тямлю.

DIRECTORY_ENTRY = dict([(e[1], e[0]) for e in directory_entry_types]+directory_entry_types)

2

Re: Поястіть мені код Python (dict)

directory_entry_types - змінна (імовірно, список списків або кортежів).
Припускаючи, що це - Python 2.x:

[(e[1], e[0]) for e in directory_entry_types]

бере з кожного елемента (списку/кортежа) у directory_entry_types елементи з індексами 0 та 1, з яких формує окремі кортежі. Таким чином, формується новий список кортежів.

dict(ThePreviousListOfTuples+directory_entry_types)

формує словник зі списку кортежів, утвореного внаслідок злиття двох списків кортежів у дужках.

3

Re: Поястіть мені код Python (dict)

Усім доброї ночі!!!
Якщо неважко поясніть мені будь-ласка чому результат получається None?

a = 18
b = 30

def nod(a,b):
    if max(a,b) % min(a,b) == 0:
        return min(a,b)
    else:
        nod(min(a,b),max(a,b) % min(a,b))
       
print nod(a,b)

Цікаво ще те що якщо код перевірити на сайті http://www.pythontutor.com/ то там стрілки показують між рядків :)

4

Re: Поястіть мені код Python (dict)

Тому що else нічого не повертає, а при першому виклику одразу ж заходить в else.
А взагалі потрібно окрему тему створювати.

5 Востаннє редагувалося roman_2391 (13.06.2013 02:06:28)

Re: Поястіть мені код Python (dict)

Я вже зрозумів потрібно було дописати return. Хоча на сайті було показано що програма не зразу виходить а проходить декілька разів, знаходить число, а повертає None.

6

Re: Поястіть мені код Python (dict)

не зразу виходить а проходить декілька разів, знаходить число, а повертає None

Так і є