Эксплойт Python 2 строковые представления
Python 2 позволяет конвертировать объект x
в его строковое представление `x`
по цене всего 2 символа. Используйте это для задач, которые легче выполнить на строке объекта, чем сам объект.
Присоединяйтесь к персонажам
Учитывая список символов l=['a','b','c']
, можно создать ''.join(l)
как `l`[2::5]
, что сохраняет байт.
Причина в том, что `l`
это "['a', 'b', 'c']"
(с пробелами), поэтому можно извлечь буквы срезом списка, начиная с второго символа с нулевым индексом a
и беря оттуда каждый пятый символ. Это не работает для объединения многосимвольных строк или escape-символов, представленных как '\n'
.
Объединить цифры
Точно так же, учитывая непустой список таких цифр, как l=[0,3,5]
, можно объединить их в строку '035'
как `l`[1::3]
.
Это экономит, делая что-то вроде map(str,l)
. Обратите внимание, что они должны быть однозначными и не могут содержать плавающие числа, например, 1.0
смешанные. Кроме того, в пустом списке это не сработает ]
.
Проверьте на негативы
Теперь о нестроковой задаче. Предположим, у вас есть список l
действительных чисел, и вы хотите проверить, содержит ли он какие-либо отрицательные числа, производя логическое значение.
Ты можешь сделать
'-'in`l`
который проверяет наличие отрицательного знака в строке rep. Это короче, чем любой из
any(x<0for x in l)
min(l+[0])<0
Во-вторых, min(l)<0
произойдет сбой в пустом списке, поэтому вам придется хеджировать.