Tips and tricks (Советы и приемы)

Главная Форумы Python Синтаксис и родные библиотеки Python Tips and tricks (Советы и приемы)

Просмотр 15 сообщений - с 16 по 30 (из 68 всего)
  • Автор
    Сообщения
  • #3873 Score: 0
    Legantmar
    Хранитель
    475 pts

    #3908 Score: 0
    Legantmar
    Хранитель
    475 pts

    в редакторе python

    табуляция нескольких выделенных строчек – Tab

    отмена табуляции нескольких выделенных строчек – Shift +Tab (также как и в Notepad++)

    #3939 Score: 0
    Anton
    Участник
    3 pts

    Комментирование нескольких строк в редакторе python (dynamo): устанавливаем курсор в начале нужной строки, удерживая alt и левую мышь, опускаемся по нужным строкам и после ставим #.

    Подсмотрено у Dimitar Venkov (https://www.youtube.com/watch?v=18Q-e7YFplU).

    #3963 Score: 0
    Legantmar
    Хранитель
    475 pts

    Если элемент скрыт как

    то команда element.IsHidden(view) срабатывает корректно
    НО если элемент скрыт как


    element.IsHidden(view) уже не срабатывает! будьте внимательны.

    Интересно, как в таких случаях определять скрыта ли категория?

    #3990 Score: 4
    Alexandr Popov
    Модератор
    44 pts

    Ещё нюансик если вы лишний раз сделаете UnwrapElement (или например помещение анврапните) то получите вот такую ошибку:

    IronPython.Runtime.Types.ReflectedIndexer  или #indexer

    Вобщем запомните что надо в таком случае убрать лишний анврап.

    И ещё частая ошибка

    IronPython.Runtime.Types.BuiltInFunction

    Это означает что вы в конце функции скобочки не поставили, н-р: GetTypes(), Geometry() и т.п.

     

    #3996 Score: 0
    Legantmar
    Хранитель
    475 pts

    когда без разницы сколько элементов на входе 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]

    #4165 Score: 0
    Legantmar
    Хранитель
    475 pts

    Range letter (последовательность английских букв). Последовательность букв, можно задавать также как и цифр

    #4306 Score: 0
    Legantmar
    Хранитель
    475 pts

    сортировка по любой букве (а не только по первой), в данном примере по второй:

    #4620 Score: 4
    Legantmar
    Хранитель
    475 pts

    Flatten в python

    #4633 Score: 2
    Legantmar
    Хранитель
    475 pts

    реверс списка (или кортежа) list[::-1]

    d=1,2,3,4 # исходный кортеж
    OUT=d, d[::-1] # выводим исходный и реверсный для сравнения

    #4672 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    Иногда бывает нужно получить копию списка в Питон. Это бывает нужно чтобы менять список, при этом сохраняя исходный список. В такой ситуации нельзя делать простое присваивание типа list2 = list1, таким образом мы просто создадим вторую ссылку на исходный список и любые манипуляции со второй ссылкой отразятся на исходном списке. Копия списка создается так list2 = list1[:]. В различных источниках можно встретить метод list.copy(), но в нашей версии Питона этот метод не работает.

    #4678 Score: 0
    Legantmar
    Хранитель
    475 pts

    Хасан, спасибо!
    я этого не знал и поэтому делал так

    способ 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)

    #4679 Score: 0
    Legantmar
    Хранитель
    475 pts

    сортировка слов по длине символов (букв)

    names = [‘Брежнев’, ‘Ельцин’, ‘Путин’, ‘Горбачев’]
    names.sort(key=lambda x: len(x))
    OUT = names

    >> > [‘Путин’, ‘Ельцин’, ‘Брежнев’, ‘Горбачев’]

    #4681 Score: 0
    Legantmar
    Хранитель
    475 pts

    начинающим пригодится.

    для упрощения, можно задавать через запятую:

    import clr, sys, System, math      # импорт библиотек

    list1, list2, list3 = [], [], []      # создание пустых списков

    a, b, c, d = 1, 2, 3, 4    # что то же самое если записывать a=1 b=2 c=3 в каждую строчку

    #4689 Score: 2
    Legantmar
    Хранитель
    475 pts

    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)) , что проще в понимании.

     

Просмотр 15 сообщений - с 16 по 30 (из 68 всего)
  • Для ответа в этой теме необходимо авторизоваться.