Архив рубрики: Публикации

Python. Класс словаря defaultdict

Python предлагает множество встроенных структур данных, таких как списки, кортежи и словари, для эффективного сохранения данных и управления ими. Словари позволяют легко сохранять данные в виде пар «ключ-значение». Ключ действует как индекс и используется для извлечения данных. Ключи должны быть уникальными и неизменными во всем словаре. Ключи в основном представляют собой строки и целые числа, хотя значение ключа может быть любого типа, например целое число, строка, число с плавающей запятой или комплексное число. Между тем, словарь может содержать коллекцию, такую ​​как список, кортеж или какой-либо другой тип словаря. Словарь в Python создается с помощью пары фигурных скобок, в которых каждая пара «ключ-значение» разделяется запятой.

Что, если вы попытаетесь получить доступ или изменить определенный ключ в несуществующем словаре? Что ж, в этом случае интерпретатор Python вызовет ошибку «KeyError» и прекратит выполнение программы.

Давайте посмотрим на пример ошибки KeyError.

#Создание списка

my_dict= {1:"Hello",2:"Welcome",3:"AndreyEx"}

#доступ к несуществующему ключу

my_dict[4]

 

Для обработки этой ошибки Python предоставляет тип defaultdict, класс словаря, который можно найти в модуле коллекций. В этой статье подробно рассматривается Python defaultdict.

 

Объяснение и примеры defaultdict

Defaultdict — это альтернатива словарю Python. Он возвращает объекты типа словаря. Defaultdict — это подкласс dict. В случае отсутствия ключа вместо того, чтобы вызывать ошибку «KeyError», значение по умолчанию предоставляется для несуществующего ключа. Синтаксис defaultdict следующий:

defaultdict(default_factory)

Функция defaultdict принимает в качестве аргумента параметр default_factory. Функция default_factory возвращает значение по умолчанию для определенного defaultdict. Если мы попытаемся получить доступ или изменить отсутствующий ключ, то функция default_factory в качестве результата вернет значение по умолчанию. Если функция default_factory отсутствует, defaultdic вызовет ошибку «KeyError», если будут отсутствовать какие-либо ключи.

Во-первых, мы реализуем defaultdic в нашем скрипте Python для доступа как к существующим, так и к отсутствующим ключам.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# определение функции, возвращающей значение по умолчанию

def my_func():

print("Ключ не определен")

# создание defualtdict 

# передача my_func() в качестве аргумента для defaultdict

my_dict=defaultdict(my_func)

# определение ключей и значений

my_dict[1]="Привет"

my_dict[2]="Добро пожаловать"

my_dict[3]="AndreyEx" 

#доступ к значениям с помощью ключей

print(my_dict [1])

print(my_dict [2])

print(my_dict [3]) 

# доступ к отсутствующему или не определенному ключу

my_dict [4]

 

[4] — это недостающий ключ. Таким образом, вместо того, чтобы вызвать ошибку «KeyError», он вызывает функцию default_factory, которая возвращает значение по умолчанию.

Лямбда-функция, известная как анонимная функция, также может использоваться в качестве параметра default_factory.

Затем мы реализуем лямбда-функцию и передадим ее в качестве аргумента defaultdict.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# создать defualtdict

# передать функцию Lamnda в качестве аргумента defaultdict

my_dict=defaultdict(lambda:"Ключ не определен")

# определение ключей и значений

my_dict[1]="Привет"

my_dict[2]="Добро пожаловать"

my_dict[3]="AndreyEx" 

#доступ к значениям с помощью ключей

print(my_dict[1])

print(my_dict [2])

print(my_dict [3]) 

#доступ к отсутствующему или не определенному ключу

print(my_dict [4])

 

Defaultdict вызывает default_factory для предоставления значения по умолчанию, но функция __missing () __ предоставляет значение по умолчанию. Функция __missing () __ — это встроенная функция в Python, которая принимает в качестве аргумента параметр default_factory. Если параметр default_factory не определен, функция __missing () __ вызывает ошибку «KeyError».

Здесь мы будем использовать функцию __missing () __ в нашем скрипте Python.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# определение функции для возврата значения по умолчанию

def my_func() :

print("Ключ не определен")

# создание defualtdict 

#передача my_func() в качестве аргумента для defaultdict

my_dict=defaultdict(my_func)

# определение ключей и значений

my_dict[1]="AndreyEx" 

# доступ к значениям с помощью ключей

print(my_dict [1]) 

# доступ к отсутствующему или не определенному ключу

my_dict.__missing__(2)

 

Классы list и int также могут использоваться как параметры default_factory с defaultdict.

 

Список как параметр default_factory

Defaultdict создается со значениями списка, когда классу списка передается параметр default_factory.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# определение класса списка передачи defaultdict

# как default_factory

my_dict=defaultdict(list)

for i in range(7):

my_dict[i].append(i)

#печать значений

print(my_dict)

 

На выходе отображаются значения в списке. Как видите, был создан defaultdict, содержащий ключ и значения.

 

Целые числа как параметр default_factory

Если мы передадим класс int в качестве параметра default_factory, мы сможем создать defaultdict, который будет содержать только целые числа. Мы создадим список целых чисел и сохраним его в defaultdict.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# определение defaultdict

# передача класса int как default_factory

my_dict=defaultdict(int)

# создание списка целых чисел

my_list=[1,2,3]

for i in my_list:

my_dict[i]+=1

#печать значений

print(my_dict)

 

В данном выводе целые значения перед двоеточием (:) являются ключами, а целые значения после двоеточия — значениями.

 

Вывод

Dafualtdict — это подобный словарю класс, присутствующий в модуле коллекций. Он работает как словарь Python, но не вызывает ошибку «KeyError», если ключ не найден. Эта статья подробно объясняет defaultdict с различными примерами.



2020-11-25T12:42:58
Python

Что такое Grub

Если вы когда-либо использовали систему Linux, то вы должны были видеть экран загрузчика. Это называется экран GRUB. Да, это пишется заглавными буквами.

В этой небольшой статье о Linux мы расскажем вам, что такое GRUB и для чего он используется. Также вкратце затронем настройку и модификацию внешнего вида загрузчика.

as6kwqC2pVdXZZzvzgLihXd54tmD9OwIKEEIIIYQQ8sUgvTlhVlvwuU2Qa79vUijkCp1NCp+dTA8bFwUIIYQQQgghJG9QgBBCCCGEkB6Nz7+tZWO3bfnN336g01e3ffxfLihACCGEEEIIIXmDAoQQQgghhBCSNyhACCGEEEIIIXmDAoQQQgghhPQo0s7OLhRLdiQUIIQQQgghhJC88f8BSgci8yHq9cwAAAAASUVORK5CYII=

Читать

Как запускать игры в безопасном режиме в Steam на Windows 10

Игры — это сложные приложения, но, тем не менее, приложения, как и любое приложение, могут столкнуться с проблемами. Подобно многим приложениям, у которых есть безопасный режим, например Outlook, в играх Steam он тоже есть.

Безопасный режим для игр позволяет пользователям запускать игру в ее самой простой, урезанной версии. В этом режиме пользователи могут устранять неполадки в игре, связанные с постоянным падением FPS, сбоями при загрузке, задержками, разрывом экрана и т. д., Просматривая его настройки.

Безопасный режим также полезен, если вы пытаетесь играть в старую игру на новой системе. Возможно, игра не была обновлена ​​для работы на имеющемся у вас оборудовании, и игра в безопасном режиме улучшит игровой процесс.

Игры в безопасном режиме в Steam

Вы можете запустить любую игру Steam в безопасном режиме. Процесс такой же. Некоторые игры могут предлагать возможность запускаться в безопасном режиме при нажатии кнопки «Играть», но вы всегда можете принудительно запустить его с помощью простого переключателя.

Примечание: игра должна быть установлена/загружена в вашу систему. Если игра находится на внешнем диске, вы должны подключить диск, прежде чем продолжить.

  1. Откройте Steam.
  2. Перейти в библиотеку.
  3. Выберите игру, которую хотите запустить в безопасном режиме.
  4. Щелкните его правой кнопкой мыши и выберите в контекстном меню «Свойства».

  5. Перейдите на вкладку Общие.
  6. Щелкните Установить параметры запуска.
  7. Уберите все в баре и войдите -safe.
  8. Щелкните ОК и закройте окно свойств.
  9. Играйте в игру, и она запустится в безопасном режиме

Выйти из безопасного режима

Чтобы выйти из безопасного режима или предотвратить повторный запуск игры в безопасном режиме, выполните следующие действия.

  1. Откройте Steam.
  2. Перейти в библиотеку.
  3. Щелкните игру правой кнопкой мыши и выберите «Свойства».
  4. Перейдите на вкладку Общие.
  5. Щелкните Установить параметры запуска.
  6. Уберите -safe переключатель из поля Параметры запуска.
  7. Щелкните OK и закройте окно свойств.
  8. Запустите игру, и она будет работать нормально.

Вывод

Когда вы запускаете игру в безопасном режиме, запуск может занять больше времени. Чем крупнее игра, тем дольше она может работать. Как только он запустится, вы можете изменить его настройки, и вы сможете без проблем играть в него.

Если игра не запускается даже в безопасном режиме, попробуйте проверить ее файлы. Если они повреждены, Steam загрузит их снова и восстановит игру. Есть вероятность, что это может не сработать, и в этом случае вам, возможно, придется удалить и переустановить игру.



2020-11-25T09:25:59
Вопросы читателей

Режим совместимости в Windows 10

Когда Windows 10 была впервые выпущена, это был улей ошибок. Операционная система была лучше, чем Windows 8/8.1, но назвать ее стабильной было бы большой натяжкой. Настольные приложения, которые отлично работали в Windows 7 и даже в Windows 8/8.1, часто имели проблемы с запуском в системе Windows 10.

Режим совместимости для приложений

Чтобы приложения работали более плавно, в Windows 10 есть режим совместимости, в котором приложения видят ОС как старую версию. Сегодня с Windows 10 совместимо больше приложений, чем пять лет назад, поэтому этот вариант используется нечасто, но он все еще существует.

Для настольных приложений можно включить режим совместимости. Это не работает для приложений UWP. Не все настольные приложения поддерживают режим совместимости.

Включить режим совместимости для приложений

Выполните следующие действия, чтобы включить режим совместимости для приложений.

  1. Найдите ярлык для приложения или EXE-файл для приложения.
  2. Перейдите к файлу в проводнике.
  3. Щелкните его правой кнопкой мыши и выберите в контекстном меню «Свойства».
  4. Перейдите на вкладку «Совместимость».
  5. Включите опцию «Запускать эту программу в режиме совместимости для».
  6. Откройте раскрывающийся список и выберите ОС, которую вы хотите эмулировать для приложения.
  7. Нажмите Применить
  8. Запустите приложение, и оно будет работать в режиме совместимости.

Отключить режим совместимости для приложений

Чтобы отключить режим совместимости для приложений, выполните следующие действия.

  1. Перейдите к ярлыку или EXE-файлу приложения и щелкните его правой кнопкой мыши.
  2. Выберите Свойства.
  3. Перейдите на вкладку «Совместимость».
  4. Снимите флажок «Запустить эту программу в режиме совместимости для».
  5. Запустите приложение из EXE-файла, и оно будет работать нормально.

Зачем использовать режим совместимости?

Режим совместимости изначально предназначался для настольных приложений, которые плохо работали в Windows 10, но большинство приложений были обновлены для этой версии Windows. Однако режим совместимости не так уж и нужен, вы все равно встретите приложения, которые работают лучше, когда он включен.

Помимо запуска приложений в более стабильной среде, режим совместимости также может быть полезным инструментом устранения неполадок для некоторых приложений. Приложения, получившие плохое обновление и вылетающие из строя в Windows 10, могут работать без сбоев, если для них включен режим совместимости.

Вывод

Режим совместимости позволяет приложениям работать в среде Windows 8, Windows 7 или Windows Vista с установленным пакетом обновления 1 или 2. Это отличный инструмент для приложений, которые давно не обновлялись, но все еще полезны. Режим совместимости сможет улучшить производительность многих приложений, но не сможет исправить все из них. Всегда будут исключения.



2020-11-25T09:19:40
Вопросы читателей

Замена строки Python

В этой статье мы поговорим о том, как заменить подстроку внутри строки в Python, используя метод replace() .

.replace () Метод

В Python строки представлены как неизменяемые объекты str . Класс str имеет множество методов, позволяющих управлять строками.

Метод .replace() имеет следующий синтаксис:

str.replace(old, new[, maxreplace])

  • str — строка, с которой вы работаете.
  • old — Подстрока, которую нужно заменить.
  • new — подстрока, заменяющая старую подстроку.
  • maxreplace — необязательный аргумент. Количество совпадений старой подстроки, которую вы хотите заменить. Матчи отсчитываются с начала строки.

Метод возвращает копию строки srt с некоторыми или всеми совпадениями подстроки old замененной на new . Если maxreplace не указан, заменяются все вхождения.

В приведенном ниже примере мы заменяем подстроку far в строке s с miles :

s = 'A long time ago in a galaxy far, far away.'s.replace('far', 'miles')

Результатом является новая строка:

'A long time ago in a galaxy miles, miles away.'

Строковые литералы обычно заключаются в одинарные кавычки, хотя можно использовать и двойные кавычки.

Если maxreplace необязательный аргумент maxreplace , он ограничивает количество заменяемых совпадений. В следующем примере мы заменяем только первое вхождение:

s = 'My ally is the Force, and a powerful ally it is.'s.replace('ally', 'friend', 1)

Строка результата будет выглядеть так:

'My friend is the Force, and a powerful ally it is.'

Чтобы удалить подстроку, используйте вместо нее пустую строку '' . Например, чтобы удалить space из следующей строки, вы должны использовать:

s = 'That’s no moon. It’s a space station.'s.replace('space ', '')

Новая строка будет выглядеть следующим образом:

`That’s no moon. It’s a station.'

Заменить подстроку в списке строк

Чтобы заменить подстроку в списке строк, используйте конструкцию понимания списка, как показано ниже:

s.replace('old', 'new') for s in list

Давайте посмотрим на следующий пример:

names = ['Anna Grace', 'Betty Grace', 'Emma Grace']new_names = [s.replace('Grace', 'Lee') for s in names]print(new_names)

Приведенный выше код создает копию списка, в котором все вхождения подстроки Grace заменены на Lee :

['Anna Lee', 'Betty Lee', 'Emma Lee']

Выводы

Замена подстроки в строке — одна из самых основных операций при написании кода на Python. После прочтения этого руководства вы должны хорошо понимать, как использовать метод replace() .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-11-25T00:58:18
Python

📹 Видео доклада “Нагрузочное тестирование с использованием пакетной службы Azure”