Ответы пользователя по тегу Python
  • IndexError: list index out of range я не могу разобраться как это исправить. Как исправить?

    @PavelMos
    Компилятор же указывает, что проблема в
    voices, в котором данные от speak_engine.getProperty('voices')
    Можно напрямую посмотреть, что в нём, например:
    voices = speak_engine.getProperty('voices')
    print (voices)
    Ответ написан
  • Как настроить подключение?

    @PavelMos
    Если в базе нет пароля, зачем вводить пароль root ? Или в базе тогда уж пароль root прописать и передавать его через скрипт.
    Ответ написан
    Комментировать
  • Как достать значение с помощью регулярных выражений?

    @PavelMos
    (\'.*\')
    отражающие символы перед кавычками, точка - любой символ, * - брать следующие символы бесконечно, ( ) - каждое найденное сочетание будет сохранено отдельным результатом.

    Если формат строки известен - начинается с #,затем 6 символов из букв и цифр, то имхо проще и понятней искать это сочетание
    (#[a-zA-Z0-9]{6})
    # первый символ
    [a-zA-Z0-9] диапазоны символов - строчные, прописные латиница + цифры
    {6} - брать то где ровно 6 символов
    ( ) - каждое найденное сочетание будет отдельным результатом

    Для питона можно регекспы пробовать тут:
    https://pythex.org/
    Ответ написан
    Комментировать
  • Как разделить данные в строке Pandas?

    @PavelMos
    Имхо целесообразнее сделать атрибуты вроде "являяется ли комедией ? да/нет (1/0)", для этого ввести доп. столбцы. Если дублировать строки, то также сильно увеличится размер датафрейма.

    import pandas
    df1=pandas.DataFrame.from_records((
        (1, 'xxx', 'Adv|Ani|Doc'),
        (2, 'yyy', 'Adv|Doc'),
        (3, 'zzz', 'Comedy|Doc')),
    columns=['movieId','title','genres'])
    genres_list=('Adv','Ani','Doc','Comedy')
    for i in genres_list:
        df1[i]=[0]*len(df1) #сначала прописать всем нули
    print (df1)
    for idx, row in df1.iterrows():
        c=(row[2])
        l=c.split('|')
        for g in genres_list:
            if g in l:
                df1.loc[idx, g]=1
    print (df1)
       movieId title       genres  Adv  Ani  Doc  Comedy
    0        1   xxx  Adv|Ani|Doc    0    0    0       0
    1        2   yyy      Adv|Doc    0    0    0       0
    2        3   zzz   Comedy|Doc    0    0    0       0
       movieId title       genres  Adv  Ani  Doc  Comedy
    0        1   xxx  Adv|Ani|Doc    1    1    1       0
    1        2   yyy      Adv|Doc    1    0    1       0
    2        3   zzz   Comedy|Doc    0    0    1       1
    Ответ написан
    Комментировать
  • Как сохранить данные в словаре python?

    @PavelMos
    Сохранить данные в словаре значит
    1) создать новый элемент словаря:
    slovar={}
    slovar[a]='b'
    или
    2)изменить существующий элемент
    slovar={1:'a',2:'b'}
    slovar[1]='z'

    в примере в вопросе как раз функция создаёт и возвращает словарь
    Ответ написан
    Комментировать
  • Как скопировать часть одного документа docx в другой из Python?

    @PavelMos
    Если именно из файла, то, скорей всего, напрямую никак. Только разархивировать .DOCX и вручную искать в соответствующих файлах содержимое , описывающими текст в начале и в конце фразы. по словам и тегам. Но не факт, что скопированный текст можно будет сохранить как валидный DOCX, потому что в DOCX очень сложная структура. То есть нужно будет еще много чего дополнительно создать, прежде чем запаковать это в DOCX.

    Думаю, это лучше делать встроенными вордовскими средствами.
    Ответ написан
    Комментировать
  • Python. Как извлечь все данные вложенных словарей, имеющих одну общую пару ключ: значение?

    @PavelMos
    Перебрать элементы первого уровня через for i in dict, в нём проверить через dict1[i].keys() наличие ключа __typename, если такой ключ существует, проверить его значение.

    import pprint
    pprint.pprint (dict1)
    for i in dict1:
        if '__typename' in dict1[i].keys():
            if dict1[i]['__typename']=='Person':
                print ('Match on: ',i)
                print (dict1[i])


    Если __typename: Person будет в элементах другого уровня, скрипт нужно переделывать, например, сначала выяснить максимальную вложенность элемента и затем проверять по всем уровням
    Ответ написан
    Комментировать
  • Яндекс практикум Цикл?

    @PavelMos
    Unexpected indent - отступы неправильные, в Питоне во вложенных конструкциях, в т.ч. в циклах, каждая строка с новой командой должна начинаться с соотв. отступом. Каждый уровень вложенности - дополнительный отступ.
    print ('a') //основная часть программы - нет отступа
    for x in range (1,10): // основная часть программы - нет отступа
        print ('b')   // вложенная  конструкция - отступ
        print ('c')  // вложенная конструкция - отступ
        for j in range (1,5):  // вложенная конструкция -  отступ
            print ('e')  // конструкция, вложенная во вложенную конструкцию -  два отступа
    Ответ написан
    Комментировать
  • Валидация int, str, float?

    @PavelMos
    Есть функции isint, isnumeric, isalpha и тд. На русском тут
    https://pythonworld.ru/tipy-dannyx-v-python/stroki...
    Ответ написан
    Комментировать