py.user.nextЧто такое dict_values и что значит ‘это на третьем’ ?это на третьемdict_values([1, 2, 3, 4, 5])
py.user.nextЧто такое dict_values и что значит ‘это на третьем’ ?это на третьемdict_values([1, 2, 3, 4, 5])
boltaykaКстати, keys() - идеологически вернее. Алгоритм построен на том факте, что ключи(keys) у словаря уникальны :)
Не плохо. Спросил простейшую вещь, и чуть не разжег холивар =D!
Ed
что значит ‘это на третьем’
pasaranaxЭто на втором.
l = dict(zip(l, l)).values()
EdА это на третьем :)
dict_values()
EdPython 3.X
А на первом что? И что же это такое все-таки dict_values и почему оно на третьем?
exPython 3.1.2 (r312:79147, Mar 21 2010, 17:44:09)EdPython 3.X
А на первом что? И что же это такое все-таки dict_values и почему оно на третьем?
boltaykaНе нужно никаких if-ов. Ловите exception IOError. Он генерится в том числе при проблемах с открытием файлов. Причем ловить его можно на любом уровне, не обязательно в той функции, где оно происходит.
Заодно спрошу, можно ли как-то отменить функцию? Допустим в функции у меня идёт:
Запрос на открытие файла. Если не открыл файл - останавливать функцию, а не продолжать. Определять не открытый файл легко (file = ''), но вот что прописать в if? Не хочу заново запускать функцию, требуя всё-таки открыть файл, а хочу именно остановить её
>>> l = [1, 2, 3, 4, 1, 2, 3, 5]
>>> l = dict(zip(l, l)).values()
>>> l
dict_values([1, 2, 3, 4, 5])
>>> dict_values([1, 2, 3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dict_values' is not defined
>>> l[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'dict_values' object does not support indexing
>>> type(l)
<class 'dict_values'>
>>>
>>> type({1:1}.keys())
<class 'dict_keys'>
>>>