Эксплойт 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произойдет сбой в пустом списке, поэтому вам придется хеджировать.