Ответы пользователя по тегу Python
  • Как удалить слова из списка в строке, почему не работает?

    @denislysenko
    data engineer
    words_to_remove = ['Удаленка', ' Москва', '.']
    
    my_str = 'Руководитель отдела маркетинга в ЮКО. Москва. Удаленка.'
    
    list_of_words = my_str.split(" ")
    
    filtered_words = [word for word in list_of_words if word.lower().replace(".", "") not in [i.lower().replace(" ", "") for i in words_to_remove]]
    
    final_string = ' '.join(filtered_words)
    print(final_string)
    Ответ написан
    1 комментарий
  • Почему скрипт не видит группу data?

    @denislysenko
    data engineer
    import requests
    import json
    
    response = requests.get(url,headers=headers)
    my_dict = json.loads(response.text) # теперь у тебя есть словарь my_dict  и ты можешь работать с ним как  с обычным словарем
    
    print(my_dict['data']) # делаешь принт значения ключа data в словаре my_dict
    
    # если нужно получить список ключей в словаре, то это можно сделать так: 
    for i in my_dict:
      print(i) # выводишь название ключа
    Ответ написан
    Комментировать
  • Как из списка .json вывести нужные элементы?

    @denislysenko
    data engineer
    Если я правильно тебя понял, то вот пример:
    data1 = {'115850341': 
                      {'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44', 'neighbors': 
    [{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44'}], 'nickname': 'sayuu', 'clan_tag': '-Q-'}
              , '154124495': 
                      {'spa_id': 154124495, 'skip': True, 'nickname': 'sayuuj', 'clan_tag': ''}, 
               '152552835': 
                      {'spa_id': 152552835, 'skip': True, 'nickname': 'Sayuuna_z', 'clan_tag': ''}}
    
    
    
    you_dict_data = None
    
    for i in data1:
      if data1[i]['nickname'] == 'sayuu':
        you_dict_data = data1[i]    
    
    
    # теперь переменная you_dict_data содердит в себе запись с твоим аккаунтом и ты можешь работать с ней как с обычным словарем 
    print(you_dict_data)  #{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44', 'neighbors': [{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44'}], 'nickname': 'sayuu', 'clan_tag': '-Q-'}
    
    # вот так ты можешь получить доступ к своим данным
    print(you_dict_data['nickname']) # "sayuu"
    print(you_dict_data['clan_tag']) # "-Q-"


    Вот как это будет выглядеть в твоем коде:
    import requests
    import json
    
    
    def num():
        q = input('Введите ваш ник: ')
        url = 'https://tanksblitz.ru/ru/api/rating-leaderboards/search/?prefix='
        page = requests.get(url + q, headers = HEADERS)
        data1 = json.loads(page.text) 
    
        you_dict_data = None
    
        for i in data1:
          if data1[i]['nickname'] == 'sayuu':
            you_dict_data = data1[i]
    
        # теперь переменная you_dict_data содердит в себе запись с твоим аккаунтом и ты можешь работать с ней как с обычным словарем 
        print(you_dict_data)  #{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44', 'neighbors': [{'spa_id': 115850341, 'mmr': 128.616106212139, 'season_number': 43, 'calibrationBattlesLeft': 0, 'number': 4639, 'skip': False, 'updated_at': '2022-12-19 16:56:44'}], 'nickname': 'sayuu', 'clan_tag': '-Q-'}
    
        # вот так ты можешь получить доступ к своим данным
        print(you_dict_data['nickname']) # "sayuu"
        print(you_dict_data['clan_tag']) # "-Q-"
    Ответ написан
    1 комментарий
  • Как перевести список со списком внутри в строку?

    @denislysenko
    data engineer
    arr=[[78, 56, 232, 12, 11, 43], 11]
    
    
    def my_function(array):
      res = ''
      for i in array:
          if type(i)==int:
              res +=f'{str(i)}, '
          else:
              res += f'{str(my_function(i))}'
      return res[:-2]
    
    result = my_function(arr)
    print(result)
    Ответ написан
    Комментировать
  • Почему зависает insert в sqlite3 python?

    @denislysenko
    data engineer
    con = sl.connect('somedb.db')
    cursor = con.cursor()
    cursor.execute("delete from tmp_rev;")
    con.commit()
    cursor.executemany("insert into tmp_rev select distinct b.id, b.rnm, r.month_r from rev r inner join (select min(id) as id, rnm from form4 group by rnm) b on r.kkt = b.rnm where rnm !='';")
    con.commit()
    print("обновление")
    Ответ написан
    Комментировать
  • Как обьявить переменную из массива?

    @denislysenko
    data engineer
    В чистом виде сделать так, как ты хочешь нельзя, но можно создать словарь, в котором ключ и значения ключа будут одинковы
    array = ['abc', 'bcd', 'cde']
    
    
    my_variables = {} # 
    for i in array:
        my_variables[i] = i
        
    print(my_variables['abc']) #--> 'abc'
    print(my_variables['bcd']) #--> 'bcd'
    print(my_variables['bcd']) #--> 'bcd'
    
    #так в итоге будет выглядить твой словарь 
    print(my_variables) # {'abc': 'abc', 'bcd': 'bcd', 'cde': 'cde'}
    Ответ написан
  • Как сгруппировать данные списка?

    @denislysenko
    data engineer
    input = {
        "products": [
        {
            "productId": "30058841",
            "name": "Смартфон 1",
            "category": {
            "name": "Smartphone"
            }
    
        },
        {
            "productId": "30058842",
            "name": "Айфон 1",
            "category": {
            "name": "Iphone"
            }
    
        },
        {
            "productId": "30058843",
            "name": "Смартфон 2",
            "category": {
            "name": "Smartphone"
            }
        }
        ]
    }
    
    
    
    res = {}
    
    for i in input['products']:
        if i['category']['name'] not in res:
            res[i['category']['name']] = {i['productId']:{'name' : i['name']}} 
        else:
            res[i['category']['name']][i['productId']] = {'name' : i['name']}
            
    print(res) #-->  {'Smartphone': {'30058841': {'name': 'Смартфон 1'}, '30058843': {'name': 'Смартфон 2'}}, 'Iphone': {'30058842': {'name': 'Айфон 1'}}}
    Ответ написан
    1 комментарий
  • Как присвоить значение списку по индексу, если данного индекса ещё не в списке?

    @denislysenko
    data engineer
    вот пример того, где решается твоя проблема:
    arr = [[1],[1,1],[1,2,1]]
    number = len(arr)-1
    something = 'something'
    
    
    #цикл для списка из 10 елементов
    for i in range(number, 11): 
        number+=1
        arr.append([])
        # что-то делаем
        arr[number].append(something)
        print(arr)
    Ответ написан
    Комментировать
  • Как собрать и вывести общее количество строк в базе данных sqlite3?

    @denislysenko
    data engineer
    пример:
    #предположем, что количество строк в таблице равно 5000
    cursor.execute("select count(*) from login_id") # делаем запос на кол-во строк в таблице
    row_count = cursor.fetchone() # значит переменная row_count будет равна (5000) 
    print(row_count) #--> (5000) 
    # то есть, row_count равна кортежу, в котором первым елементоя является число
    
    #вывести значение 5000, можно просто сделав принт по нулевому индексу кортежа row_count
    #вот так:
    print(row_count[0]) #--> 5000
    Ответ написан
    2 комментария
  • Ошибка sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type. Как исправить?

    @denislysenko
    data engineer
    пример:
    result = cursor.execute("SELECT 10, 'hello'").fetchall() # переменная result равна [(10, 'hello')]
    Ответ написан
  • Как добавить ключ со значением во вложение к словарю?

    @denislysenko
    data engineer
    import json
    
    users = """
    
    {
        "users" : {
            "23423424" : {
                "nums" : [14, 3425, 33, 2],
                "first_name" : "Alex"
            },
    
            "234442" : {
                "nums" : [33, 1, 99, 42],
                "first_name" : "Gosha"
            }
        }
    }
    
    """
    
    my_dict = {
        "777" : {
            "nums" : [2131, 666, 91, 2],
            "first_name" : "Max"
            }
    }
    
    dict_users = json.loads(users) # получаешь словарь из строки джейсона
    
    dict_users["users"].update(my_dict)
    
    print(dict_users) #{'users': {'23423424': {'nums': [14, 3425, 33, 2], 'first_name': 'Alex'}, '234442': {'nums': [33, 1, 99, 42], 'first_name': 'Gosha'}, '777': {'nums': [2131, 666, 91, 2], 'first_name': 'Max'}}}
    Ответ написан
  • Как записать в столбец sql значения из списка?

    @denislysenko
    data engineer
    используй оконные функции

    ЛИБО такое решение:

    #предполагаю, что в таблице users есть поле id
    q.execute("Select id from users where shadow=0;")
    users_ids = q.fetchall() #[(1), (2), ...] то есть, получаем лист с тюплами в которых содержится айди где shadow=0
    
    for i in range(len(morty)): 
        update_rick = q.execute(f"UPDATE users SET chance = chance + {morty[i]} WHERE shadow=0 and id={users_ids[i][0]}") # обновляем строку, с конкретным айди
    Ответ написан
    1 комментарий
  • Как запуститьpyspark functions lag?

    @denislysenko
    data engineer
    Попробуй так:
    windowSpec = Window.partitionBy("Wiki").orderBy("id")
    df_new=df.select(
        "wiki", "id",
        F.lag("wiki", 1).over(windowSpec).alias("lag")
    )
    Ответ написан
    Комментировать
  • Как изменить определённый элемент списка в цикле for?

    @denislysenko
    data engineer
    Пробуй так:
    votes = ['51,639', '51,480', '51,344', '51,267', '50,879', '50,532', '50,419', '50,250', '50,187', '50,139', '50,106', '50,064', '49,988', '49,906', '49,705', '49,641', '49,624', '49,385', '49,347', '49,221', '49,165', '49,085', '49,057', '49,043', '48,982', '48,641', '48,398', '48,347', '48,347', '48,214', '47,929', '47,830', '47,725', '47,688', '47,681', '47,678', '47,542', '47,532', '47,459', '47,392', '47,161', '47,153', '47,056', '47,046', '47,027', '46,926', '46,718', '46,679', '46,593', '46,569']
    
    for index in range(len(votes)):
        x = votes[index].split(',')
        votes[index]=x[0]+x[1]
    
    print(votes) # ['51639', '51480', '51344', '51267', '50879', '50532', '50419', '50250', '50187', '50139', '50106', '50064', '49988', '49906', '49705', '49641', '49624', '49385', '49347', '49221', '49165', '49085', '49057', '49043', '48982', '48641', '48398', '48347', '48347', '48214', '47929', '47830', '47725', '47688', '47681', '47678', '47542', '47532', '47459', '47392', '47161', '47153', '47056', '47046', '47027', '46926', '46718', '46679', '46593', '46569']
    Ответ написан
    Комментировать
  • Как вывести массив чисел в файл?

    @denislysenko
    data engineer
    Вот пример:
    import numpy as np
    from numpy import *
    np_array = np.array([1, 4, 5, 8], float)
    
    np.savetxt('test.txt', np_array, delimiter=',', fmt='%d')
    Ответ написан
    Комментировать
  • Задача в Python, как решить?

    @denislysenko
    data engineer
    import pandas
    realty_df = pandas.read_csv('yandex_realty_data.csv')
    
    filtered_objects_area = []
    filtered_objects_price = []
    filtered_objects_traffic = []
    filtered_objects_address = []
    filtered_objects_profits = []
    
    for index in range(len(realty_df)):
        if (realty_df['floor'][index] == 1 and
            realty_df['area'][index] >= 40 and
            realty_df['price'][index] <= 190000 and
            realty_df['commercial_type'][index] in ['FREE_PURPOSE', 'RETAIL'] and
            realty_df['distance'][index] <= 6.7 and
            realty_df['already_taken'][index] == 0 and
            realty_df['competitors'][index] <= 1):
            filtered_objects_area.append(realty_df['area'][index])
            filtered_objects_price.append(realty_df['price'][index])
            filtered_objects_traffic.append(realty_df['traffic'][index])
            filtered_objects_address.append(realty_df['address'][index])
            filtered_objects_profits.append(realty_df['traffic'][index] * 
            18 * 1/225 * 0.1 * 21000 * 0.2 * 30 - (realty_df['price'][index] + 
            2 * 50000 * 1.43))
    
    for index in range(len(filtered_objects_profits)):
        if filtered_objects_profits[index]   > 500000: #это и есть твое условие исходя из задачи
            print(filtered_objects_area) # выведет списоке данные из filtered_objects_area
            print(filtered_objects_price) # данные из filtered_objects_price
            print(filtered_objects_traffic) # теперь из filtered_objects_traffic
            print(filtered_objects_address) # из filtered_objects_address
            print(filtered_objects_profits) # и filtered_objects_profits
            print('----------')
    Ответ написан
    Комментировать
  • Задание из егэ по информатике.Что не так в моём коде?

    @denislysenko
    data engineer
    отрезок [5, 9]
    то есть, от пяти до девяти НО НЕ ВКЛЮЧАЯ ДЕВЯТКУ
    ТО ЕСТЬ, НАШ ОТРЕЗОК ЭТО = LEN([5, 6, 7, 8])
    Ответ написан
    1 комментарий
  • Как парсить масив python?

    @denislysenko
    data engineer
    Если я првильно понял задание, то вот:

    my_dict = {'a': '123', 'b': '456'}  # это твой массив, который на самом деле является словарем
    
    first = list(my_dict.keys()) # это равно ['a', 'b']
    second = list(my_dict.values()) # это равно ['123', '456']


    https://pythoninfo.ru/osnovy/massivy-python
    https://pythonworld.ru/tipy-dannyx-v-python/slovar...
    Ответ написан
    Комментировать
  • Как найти определенное значение в файле python?

    @denislysenko
    data engineer
    Пример того, как выглядит файл my_file.txt:
    213 
    321 
    3213 11
    12
    41 21 412 12 123 321 11
    11 321 
    212 11


    Решение:
    count = 0 
    
    with open('my_file.txt') as f:
        lines = [line.rstrip() for line in f]
        for line in lines:
            for elem in line.split(' '):
                if elem == str(11):
                    count += 1
            
        
    print(count) #--> 4
    Ответ написан
  • Как обновить записи в sql?

    @denislysenko
    data engineer
    в execute напиши это
    UPDATE {название таблицы}
    SET {название столбца}= {заначение этого столбца}
    WHERE {какое-то условие};
    Ответ написан