min()
должен выполнить то, в чем Вы нуждаетесь
print(min(a,b))
возглавляет, min(a, b, key=len)
только работы в python 2.5, и я думаю.
(это не работает над моим MacBook с python 2.4, но мой сервер Linux с 2,5 прекрасен)
Вы чрезвычайно не соглашаетесь с тем, что Вы хотите, так некоторые альтернативы. Учитывая следующие два списка:
a = [1,2,3,4,5,6,7,8,9,10]
b = [1,2,3,4,5,6,7,8]
Для печати самого короткого списка можно просто сделать..
>>> print(min(a, b))
[1, 2, 3, 4, 5, 6, 7, 8]
Для получения самого короткого как числа Вы можете или min
len()
из каждого списка или делаете len(min())
(оба идентичны, выбирают, который когда-либо Вы находите самыми читаемыми)..
>>> print(min( len(a), len(b) ))
# or..
>>> print(len( min(a, b) ))
8
Для печати самого низкого значения в любом списке можно предоставить список как отдельный аргумент к [1 110]
>>> a.extend(b) # Appends b to a
>>> print a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8]
>>> print(min(a))
1
Наконец, другая возможность, список, который имеет самые низкие значения всего:
>>> max( sum(a), sum(b) )
55
Для печати фактического списка с самым высоким sum()
Вы могли или использовать тернарный оператор, как..
>>> print a if sum(a) > sum(b) else b
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
.. хотя мне никогда действительно понравился (или использование) он, вместо этого с помощью небольшого дольше, регулярный если/еще операторы..
>>> if sum(a) > sum(b):
... print a
... else:
... print b
...
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Если длина списка - то, что заставляет его понизиться (не его значения), то Вы на самом деле хотите:
min(a, b, key=len)
, который только случайно эквивалентен
min(a, b)
в данном примере.
Следующее, что Вы хотите?
if len(a) < len(b):
print a
else:
print b
, С другой стороны, если Вы хотите использовать тернарный оператор как @Andrew G. Johnson:
print a if len(a) < len(b) else b
пз. Помните, что Python не использует фигурные скобки для своих блоков, и что его тернарный оператор отличается от подобного языкам C.
Я не знаю Python, но для чего-то вроде этого, что я использовал бы тернарный оператор.
print(length(a) < length(b) ? length(a) : length(b))
Одна вещь отметить об этом, что, если они равны, она распечатает длину (b)