Интересно. Когда народу надоест писать True вместо того чтоб просто 1 написать... Alen, тогда бы уж ещё способы написал...
y={'a':0, 'b':3}.get(x, None) # если в словаре есть ключ x, y=value, иначе y=None
-------
y=new_y or y # если new_y ложь, остается старое значение y
-------
y=('a','b')[x] # если x==1:y='b'. Частный случай, смена языка note((u'Hi !',ru('Привет!'))[lang])
-------
def add_y():y=(y+1,0)[y==6] # в функции увеличиваем y на 1 пока не достигнет 6, потом он снова 0.
-------
-------------
добавлено в 21.10: Делать было нечего...Вот:
Класс, наследованный от типа словаря. Словарь получил новые методы
# heap.py,by Krust (31,12,2009)
class heap(dict):
def __init__(self, default={}):
self.update(default)
def __call__(self, el=None):
h=self.items()
h.sort()
if el is None:return h # items
else:return [x[el] for x in h] # key or value
def index(self, arg, el=0):
# if el is 0: return key, if 1 return value
return self(el).index(arg)
def keys_v(self,value):
return [item[0] for item in self() if item[1]==value]
if __name__=='__main__':
m=heap({'a':2, 'c':4, 'b':1}) # создание словаря с дополнительными методами
# дальше с m можно работать, как с обычным словарем. Кроме того дополнительно:
print m() # то же что m.items(), только сортированный
print m(0) # ключи словаря, сортированные
print m(1) # значения словаря, сортированные по ключам
print m.index('b') # индекс ключа '1' в сортированном списке ключей
print m.index(2,1) # индекс значения 2
print m.keys_v(2) # список ключей, у которых значение равно 2
ответ опубликован:
Рейтинг: 5
голосов: 2
- 5
- 1
- 2
- 3
- 4
- 5

