Уведомления

Группа в Telegram: @pythonsu

#1 Май 18, 2010 10:52:47

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

py.user.next
dict_values([1, 2, 3, 4, 5])
это на третьем
Что такое dict_values и что значит ‘это на третьем’ ?



Офлайн

#2 Май 18, 2010 10:54:10

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

boltayka
Не плохо. Спросил простейшую вещь, и чуть не разжег холивар =D!
Кстати, keys() - идеологически вернее. Алгоритм построен на том факте, что ключи(keys) у словаря уникальны :)



Офлайн

#3 Май 18, 2010 11:01:34

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

Ed
что значит ‘это на третьем’
pasaranax
l = dict(zip(l, l)).values()
Это на втором.
Ed
dict_values()
А это на третьем :)



Офлайн

#4 Май 18, 2010 11:14:17

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

А на первом что? И что же это такое все-таки dict_values и почему оно на третьем?



Офлайн

#5 Май 18, 2010 16:57:31

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

Ed
А на первом что? И что же это такое все-таки dict_values и почему оно на третьем?
Python 3.X



Офлайн

#6 Май 18, 2010 18:28:40

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

ex
Ed
А на первом что? И что же это такое все-таки dict_values и почему оно на третьем?
Python 3.X
Python 3.1.2 (r312:79147, Mar 21 2010, 17:44:09)
on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> dict_values()
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
NameError: name ‘dict_values’ is not defined
>>>



Офлайн

#7 Май 18, 2010 21:01:34

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

Может буду не в тему, но всё-же покажу, для чего это использовалось: http://disenar.ru/1317.html (смотреть в исходный код)
Почищу код доделаю GUI, и скину сюда (ибо сейчас стыдно :)), может как-нибудь додумаете :)

Заодно спрошу, можно ли как-то отменить функцию? Допустим в функции у меня идёт:
Запрос на открытие файла. Если не открыл файл - останавливать функцию, а не продолжать. Определять не открытый файл легко (file = ''), но вот что прописать в if? Не хочу заново запускать функцию, требуя всё-таки открыть файл, а хочу именно остановить её

Отредактировано (Май 18, 2010 21:04:43)

Офлайн

#8 Май 18, 2010 21:10:08

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

boltayka
Заодно спрошу, можно ли как-то отменить функцию? Допустим в функции у меня идёт:
Запрос на открытие файла. Если не открыл файл - останавливать функцию, а не продолжать. Определять не открытый файл легко (file = ''), но вот что прописать в if? Не хочу заново запускать функцию, требуя всё-таки открыть файл, а хочу именно остановить её
Не нужно никаких if-ов. Ловите exception IOError. Он генерится в том числе при проблемах с открытием файлов. Причем ловить его можно на любом уровне, не обязательно в той функции, где оно происходит.



Офлайн

#9 Май 19, 2010 05:48:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

>>> 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'>
>>>
это тоже на третьем :)



Офлайн

#10 Май 19, 2010 05:50:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Удаление одинаковых элементов в списке.

>>> type({1:1}.keys())
<class 'dict_keys'>
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version