Питонический способ получить ключи словаря с нужным свойствомPython

Программы на Python
Ответить
Anonymous
 Питонический способ получить ключи словаря с нужным свойством

Сообщение Anonymous »

В Python 3.12 у меня есть словарь, ключами которого являются два кортежа целых чисел, а значениями являются целые числа (как в функции f: N × NN, для которой f(n, m) = n + m). Мне нужны те ключи словаря, где первый элемент имеет определенное значение. Достаточно просто написать функцию типа

Код: Выделить всё

def matching_keys(d: dict[tuple[int, int], int], n: int) -> list[tuple[int, int]]:
"""
find all the keys in a dictionary *d* whose first element is the integer *n*

:param d: the dictionary in question
:type d: dict[tuple[int, int], int]
:param n: the first-element value *n* in question
:type n: int
:return: a list of all the keys whose first elements are *n*
"""
result: list[tuple[int, int]] = []
for x,y in d.keys():
if x == n:
result.append((x,y))
return result
Но мне кажется, что писать собственный цикл, который явно проверяет каждый ключ, не совсем питонично. Есть ли другой, идиоматический (и, возможно, не столь обязательный) способ?

Подробнее здесь: https://stackoverflow.com/questions/798 ... d-property
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»