Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 14, 2011 18:01:47

AlSolo
От:
Зарегистрирован: 2010-11-12
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор элемента из спискапо несколькким параметрам

Вообщем есть список элементов(парковок). У меня пока выбирает с наибольшим кол-вом свободных мест
p = max(all_parkings, key=Parking.get_free_space_count)

Как сделать, что бы можно было выбрать элемент по 2 параметрам? ПОМОГИТЕ! Спасибо.



Офлайн

#2 Фев. 15, 2011 05:53:04

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Выбор элемента из спискапо несколькким параметрам

AlSolo
p = max(all_parkings, key=Parking.get_free_space_count)
Как сделать, что бы можно было выбрать элемент по 2 параметрам?
key - вообще-то функция, вы в ней можете что угодно делать. Вводите метрику на своих параметрах и вперед.
import math

ls = ((1,1,8),(1,2,2),(2,1,7),(2,2,3))

def distance(x):
return math.sqrt(x[0]*x[0]+x[1]*x[1]+x[2]*x[2])

max(ls, key=distance)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Фев. 15, 2011 21:44:22

AlSolo
От:
Зарегистрирован: 2010-11-12
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор элемента из спискапо несколькким параметрам

да! а сразу 2 key можно использовать? т.е. как нибудь p = max(all_parkings, key=Parking.get_free_space_count,get_distance)



Офлайн

#4 Фев. 16, 2011 06:09:36

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Выбор элемента из спискапо несколькким параметрам

AlSolo
да! а сразу 2 key можно использовать? т.е. как нибудь p = max(all_parkings, key=Parking.get_free_space_count,get_distance)
Нет, но можно вернуть из функции кортеж, тогда при одинаковых первых элементах будут сравнены вторые и т.д.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version