Задать вопрос
  • Как в цикле n-ное количество записей расписать по файлам?

    @PavelMos
    Если по три, то надо шаг сделать 3 и обращаться по индексам.
    list_data[номер индекса]

    for i in range( 0,len(list_data),3):
        context = {}
        doc = DocxTemplate("шаблон.docx")
        for j in range (0,3): 
            context['id' + list_data[i+j]['id']] = {list_data[i+j]['id']}
            context['name' + list_data[i+j]['id']] = {list_data[i+j]['name']}
            context['password' + list_data[i+j]['id']] = {list_data[i+j]['password']}
        doc.render(context)
        doc.save(f"{i}_output.docx")
  • Словарь в словере, как вывести значение по внешнему ключу?

    @PavelMos
    В вопросе не кортежи (списки) вложены, а словари {}, то есть в словарь вложены словари. См. подробнее о структурах данных Питона. Ключ в словаре не может повторятся, точнее, при создании такого словаря с указанием одинаковых ключей в нем сохранится только один ключ.

    Вкладывать можно что угодно, для доступа нужно только брать элемент на нужном уровене и правильно обращаться к вложенным данным.
  • Ошибка записи данных из бота в файл?

    @PavelMos
    print(message.text) вставлено для проверки, что передаётся на запись в файл ?
    Там выводится то, что нужно ?
  • Почему изменяется оригинальный список при создании из его элементов нового списка?

    @PavelMos Автор вопроса
    спасибо. Про разницу между копированием и простым присваиванием, т.е. созданием ссылки, я знаю, но, насколько я понимаю, в скрипте я поочередно добавляю в новый список ссылки на объекты из старого, не изменеяя уже существующие элементы нового списка и не изменяя элементы в старом
  • Как добавить в список ближайшие элементы?

    @PavelMos
    Master Ruby, да, только что сам увидел
    пока разбирался, сделал так же, но немного по-другому
    counterX=0
    for i in range(len(n)):
        #print (n[i])
        if type(n[i]) is list:
            x.append(n[i])
            counterX+=1
            #print (x)
        elif type(n[i]) is int:
            x[counterX-1].append(n[i])
           # print (x)
  • Как добавить в список ближайшие элементы?

    @PavelMos
    Для интереса попробовал на произвольном списке , не все элементы копируются в новый

    n= [['a','b','c'],1,2,4,5,['x','z','w'],6,7,['d','e','f'],8,9,10]
    x = []
    for i in range(len(n)):
        if type(n[i]) is list:
            x.append(n[i])
            mark = len(x) - 1
        elif type(n[i]) is int:
            x[mark].append(i)
            
    x
    Out[234]: 
    [['a', 'b', 'c', 1, 2, 3, 4],
     ['x', 'z', 'w', 6, 7],
     ['d', 'e', 'f', 9, 10, 11]]
  • Как получить содержимое определённой строки в таблице excel на python используя openpyxl?

    @PavelMos
    Сорри, наверное надо было ещё сами значения взять.
    wb = load_workbook('table.xlsx')
    ws=wb['data']
    row2=ws[2]
    for cell in row2:
        print (cell.value, end="")
    
    подробнее в документации смотри
    https://openpyxl.readthedocs.io/en/stable/tutorial.html
  • Python. Как отсортировать двухмерный список?

    @PavelMos
    Роман Томченко, сорри, ошибся, перепутал с выходом из цикла.
  • Как сохранить результат работы парсера в файл .txt?

    @PavelMos
    Добавлять к res символ перевод строки
    или сначала сохранять вывод в массив а потом записывать через например модуль записи csv
  • Как пустоту в ячейке заменить на ноль?

    @PavelMos
    Hababena,

    df['B']=df['B'][re.sub('\\D','', str(x)) for x in df['B'].fillna(0)]

    столбец=[генератор списка] значит генерируется список и присваивается столбцу, ячейки столбца получают соотв значения списка (если длина не совпадёт, результат может быть разный).
    а тут столбец=столбец и после него еще приписан генератор списков.

    2.По вашему решению вопрос: а если мне надо удалить все символы кроме точки?
    df['B2']=[re.sub('[^.]','', str(x))  for x in df['B'].fillna(0) ]

    то же самое, только регексп другой
  • Как можно исправить ошибку?

    @PavelMos
    В создаваемом словаре перечисление словарей, но нет пары ключ-значение
    Dict может быть значением словаря, но не ключом.

    Если задание не запрещает надо
    dict_Apteka = {
        'Lekartsva ot Nasmorka':('Nazivin','Ksimelin', 'Nazolneks','Pinosol','Nazol') ,
        'Lekartsva it Golovnoy Boli':('Spazmolgon','Ibuprofen','Nurofen'),
        'Lekartsva ot Diarei':('Neosmektin','Smekta','Dioktab'),
        'Lekartsva ot Otravleniya':('Sorbeks','Atoksil','Enterosgel'),
        'Lekarstva ot Kahlya':('Bromgeksin','Lazolvan','Bronxolitin'),
        'Lekarstva ot Temperaturi':('Rinza','Aspirin','Ibuklin'),
        'Lekarstva ot Grippa':('Teraflu',)'  # Создали Словарь "Аптека"
    }

    или

    dict_Apteka = [
        {'Lekartsva ot Nasmorka':('Nazivin','Ksimelin', 'Nazolneks','Pinosol','Nazol') },
        {'Lekartsva it Golovnoy Boli':('Spazmolgon','Ibuprofen','Nurofen')},
        {'Lekartsva ot Diarei':('Neosmektin','Smekta','Dioktab')},
        {'Lekartsva ot Otravleniya':('Sorbeks','Atoksil','Enterosgel')},
        {'Lekarstva ot Kahlya':('Bromgeksin','Lazolvan','Bronxolitin')},
        {'Lekarstva ot Temperaturi':('Rinza','Aspirin','Ibuklin')},
        {'Lekarstva ot Grippa':('Teraflu',)}  # Создали Словарь "Аптека"
    ]


    тогда будет список из 7 словарей и как раз к списку по номеру элемента можно обращаться
    grip=dict_Apteka[7]
    а в словаре номеров элементов нет, есть ключи.
    ('Teraflu',) - чтобы значение было такого же типа тупл как и значения в других парах, чтобы его можно было перебирать. Это не обязательно, но если программа будет перебирать значения в парах, то у пары, где в значении неитерируемый объект, может быть ошибка, или скрипт начнёт это слово по буквам перебить.
    ('XXX',) это итерируемая тупла из одного элемента.
  • Не понимаю в чем ошибка, все отступы проверил. Как исправить?

    @PavelMos
    Используй редактор с подсветкой синтаксиса он может показать где ошибка с отступом
  • Выдаёт ошибку AttributeError: 'NoneType' object has no attribute 'get' почему, как это исправить?

    @PavelMos
    Учить базу питону и понимать, что такое объекты, None и что такое аттрибуты объектов.
    В Питоне все переменные, все данные это объекты. Объекты каждого типа - штатные вроде строки и те объекты, которые реализованы в модулях, имеют свои встроенные свойства. Например, у любой строки есть встроенные свойства объекта типа строка, их можно посмотреть с помощью встроенной функции dir () 'stroka'.__dir__()

    NoneType это тоже объект , условно означающий отсутствие результата предыдущей операции. Некая, например, функция ищет подстроку в строке и, если находит, возвращает, сколько раз она там встречается. А если не находит, то не возвращает 0 или False, а не возвращает ничего.

    Значит, на предыдущем шаге той переменной, в которой идет обращение к её встроенному атрибуту get, был присвоен не нужный объект, а пустота.

    Кроме того, ошибка 'NoneType' object has no attribute 'get' , а в тексте программы атрибутов 'get' нет, есть get_guild
  • Как организовать видеонаблюдения в доме?

    @PavelMos
    Можно скачать Zenmap это графическая оболочка к nmap и посмотреть какие узлы в сети видны.
    Перед этим с компа узнать адрес шлюза (gateway) через ipconfig. Например, это будет 192.168.0.1
    Тогда nmap -sn 192.168.0.1-255 - он выдаст список узлов данного диапазона ответивших на пинг. Будет понятно, виден ли второй свитч и то что за ним, или второй свитч работает как роутер и тогда нужен порт-форвардинг
  • Как сделать генератор из чисел и букв не рандомный?

    @PavelMos
    И еще конструкция выдаёт символы отдельно, надо их склеить
    s=[''.join(i) \
    for i in itertools.combinations_with_replacement(string.digits + string.ascii_lowercase[:11], 3)]
  • Где ошибка в скрипте?

    @PavelMos
    Уточнение - строка-то в кавычках, правая кавычка просто не видна в посте.
    На виндах в Pycharm код работает
  • Где ошибка в скрипте?

    @PavelMos
    "000000740....030376239121648616e6473686

    число в хексе передаётся как строка, строка должна быть заключена в кавычки ' 111' или "222"
  • Как добавить в список ближайшие элементы?

    @PavelMos
    Master Ruby, в Руби есть понятие "ближайший" (слева) для списков ? Если нетрудно, можно показать как это выглядит ? Я пор руби только читал, но интересно посмотреть
  • Как добавить в список ближайшие элементы?

    @PavelMos
    В общем виде - никак, а конкретно для этого примера, где есть одинаковое чередование:
    n= [['a','b','c'],1,2,['d','e','f'],3,4]
    m=[]
    for i in range (0, len(n), 3):
        m+=[n[i]+[n[i+1]]+[n[i+2]]]


    проход по списку с шагом три, на каждом шаге к новому списку добавляется элемент, представляющий собой список-соединение трёх элементов первого списка. Чтобы объединить список и числа, числа представлены как списки из одного элемента, то есть заключены в квадратные скобки.
  • Как создать многомерный список в Python?

    @PavelMos
    Это более сложно тк здесь уже будет разный алгоритм в случае разной вложенности. Так как все циклы со всеми переменными будут в одной области видимости, у всех должны быть разные имена переменных i,j.... и их надо задать заранее.

    Как вариант - сделать для максимальной вложенности при переходе на каждый уровень делать проверку n.
    Если большАя вложенность не нужна, эта часть цикла пропускается.
    Или - делать через eval, т.е. сначала составлять выражение, например, вложенный генератор списков, и затем выполнять его и сохранять результат