Tips and tricks (Советы и приемы)
Главная › Форумы › Python › Синтаксис и родные библиотеки Python › Tips and tricks (Советы и приемы)
- В этой теме 67 ответов, 9 участников, последнее обновление 6 лет, 2 месяца назад сделано Анатолий.
-
АвторСообщения
-
в редакторе python
табуляция нескольких выделенных строчек – Tab
отмена табуляции нескольких выделенных строчек – Shift +Tab (также как и в Notepad++)
Комментирование нескольких строк в редакторе python (dynamo): устанавливаем курсор в начале нужной строки, удерживая alt и левую мышь, опускаемся по нужным строкам и после ставим #.
Подсмотрено у Dimitar Venkov (https://www.youtube.com/watch?v=18Q-e7YFplU).
Если элемент скрыт как
то команда element.IsHidden(view) срабатывает корректно
НО если элемент скрыт как
element.IsHidden(view) уже не срабатывает! будьте внимательны.Интересно, как в таких случаях определять скрыта ли категория?
Ещё нюансик если вы лишний раз сделаете UnwrapElement (или например помещение анврапните) то получите вот такую ошибку:
IronPython.Runtime.Types.ReflectedIndexer или #indexer
Вобщем запомните что надо в таком случае убрать лишний анврап.
И ещё частая ошибка
IronPython.Runtime.Types.BuiltInFunction
Это означает что вы в конце функции скобочки не поставили, н-р: GetTypes(), Geometry() и т.п.
когда без разницы сколько элементов на входе 1 или несколько
isinstance(IN[0], list) – определяет является ли объект на входе IN[0] списком
ну и сверху, для удобства, дописал функцию def U() – чтобы не писать каждый раз UwrapElement()
p.s.
if not isinstance(IN[0], list): OUT = [IN[0]]
else: OUT = IN[0]Range letter (последовательность английских букв). Последовательность букв, можно задавать также как и цифр
Иногда бывает нужно получить копию списка в Питон. Это бывает нужно чтобы менять список, при этом сохраняя исходный список. В такой ситуации нельзя делать простое присваивание типа list2 = list1, таким образом мы просто создадим вторую ссылку на исходный список и любые манипуляции со второй ссылкой отразятся на исходном списке. Копия списка создается так list2 = list1[:]. В различных источниках можно встретить метод list.copy(), но в нашей версии Питона этот метод не работает.
Хасан, спасибо!
я этого не знал и поэтому делал такспособ 1:
list2=[]
for i in list1:
list2.append(i)
способ 2:
list2= map(lambda x: x, list1)способ 3:
list2 = list(x for x in list1)UPDATE: со временем понял, что копию листа можно сделать очень просто list2 = list(list1)
сортировка слов по длине символов (букв)
names = [‘Брежнев’, ‘Ельцин’, ‘Путин’, ‘Горбачев’]
names.sort(key=lambda x: len(x))
OUT = names>> > [‘Путин’, ‘Ельцин’, ‘Брежнев’, ‘Горбачев’]
начинающим пригодится.
для упрощения, можно задавать через запятую:
import clr, sys, System, math # импорт библиотек
list1, list2, list3 = [], [], [] # создание пустых списков
a, b, c, d = 1, 2, 3, 4 # что то же самое если записывать a=1 b=2 c=3 в каждую строчку
range(0,10,1) – создает список ТОЛЬКО с ЦЕЛЫМИ числами (integer) в интервале от 0 до 10 с шагом 1
если нам нужен список чисел с шагом, к примеру 0,1, то вот такая запись range(0,10,0.1) уже не работает!
в этом случае можно воспользоваться однострочной записью через функцию lambda:
map(lambda x: x*0.1, range(10)), где 0.1 – шаг чисел, range(10) – количество чисел на выходе (в данном случае от 0 до 10*0.1)
Или
OUT = ((x*0.1) for x in range(10))
, что проще в понимании. -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
Comments: 482