Получение ключей по значениям в словаре - PullRequest
2 голосов
/ 03 ноября 2011

Как я могу выполнить следующие операции со словарем, если все мои значения уникальны и не отсортированы.

key : value
152 : 780
87 : 688
2165 : 15
  • Я хочу получить все ключи.
  • Я хочу найти ключ для значения 688
  • Я хочу получить все значения.

Предпочтительно, без цикла и без необходимости поддерживать отношение ключ-значение во внешнем объекте.

Я иногда скучаю по питону для такого рода вещей.

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Если ключи являются целочисленными значениями, Array может помочь.Это редкий массив;поэтому для и для каждого будут обрабатываться только ключи, которым присвоено значение (хотя я не имею понятия об использовании памяти).

Итак:

var list: Array = [];
list[1] = 10;
list[4] = 40;

for each(var value: int in list) trace(value);
// outputs (order can be different)
// 10
// 40

// index has to be * or String; the compiler gives an error if it is not
for(var index: * in list) trace(index);
// outputs (order can be different)
// 1
// 4

Существует метод indexOf для полученияключ для значения;хотя не существует простой функции для получения всех ключей.

0 голосов
/ 03 ноября 2011

Вы не можете делать любую точку, которую хотите, без затрат на итерацию по своему словарю.Таким образом, вам нужно поддерживать другой объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...