Короткий Код Python для высказывания “Выбирает нижнее значение”?

21
задан cdleary 12 January 2009 в 19:30
поделиться

7 ответов

print(min(a, b))
39
ответ дан 29 November 2019 в 03:31
поделиться

min() должен выполнить то, в чем Вы нуждаетесь

print(min(a,b))
4
ответ дан 29 November 2019 в 03:31
поделиться

возглавляет, min(a, b, key=len) только работы в python 2.5, и я думаю.

(это не работает над моим MacBook с python 2.4, но мой сервер Linux с 2,5 прекрасен)

1
ответ дан 29 November 2019 в 03:31
поделиться

Вы чрезвычайно не соглашаетесь с тем, что Вы хотите, так некоторые альтернативы. Учитывая следующие два списка:

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]
29
ответ дан 29 November 2019 в 03:31
поделиться

Если длина списка - то, что заставляет его понизиться (не его значения), то Вы на самом деле хотите:

min(a, b, key=len)

, который только случайно эквивалентен

min(a, b)

в данном примере.

5
ответ дан 29 November 2019 в 03:31
поделиться

Следующее, что Вы хотите?

if len(a) < len(b):
    print a
else:
    print b

, С другой стороны, если Вы хотите использовать тернарный оператор как @Andrew G. Johnson:

print a if len(a) < len(b) else b

пз. Помните, что Python не использует фигурные скобки для своих блоков, и что его тернарный оператор отличается от подобного языкам C.

0
ответ дан 29 November 2019 в 03:31
поделиться

Я не знаю Python, но для чего-то вроде этого, что я использовал бы тернарный оператор.

print(length(a) < length(b) ? length(a) : length(b))

Одна вещь отметить об этом, что, если они равны, она распечатает длину (b)

-3
ответ дан 29 November 2019 в 03:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: