Нахождение ключа минимального значения в ассоциативном массиве

Одно решение, хотя я призываю кого-то сделать лучше; -)

a = 'abcdef'
b = [[a[i-1], a[i]] for i in range(1, len(a), 2)]

for x, y in b:
  print "%s%s\n" % (x, y)
42
задан Philip Morton 19 October 2009 в 12:15
поделиться

3 ответа

array_keys - ваш друг:

$pets = array(
    "cats" => 1,
    "dogs" => 2,
    "fish" => 3
);
array_keys($pets, min($pets));  # array('cats')

PS : где-то на SO есть дубликат (у него было max вместо min , но я отчетливо это помню).

92
ответ дан 26 November 2019 в 23:29
поделиться

Можно попробовать изучить эти:

2
ответ дан 26 November 2019 в 23:29
поделиться
$min_val = null;
$min_key = null;
foreach($pets as $pet => $val) {
  if ($val < $min_val) {
    $min_val = $min;
    $min_key = $key;
  }
}

Вы также можете перевернуть массив и отсортировать его по ключу:

$flipped = array_flip($pets);
ksort($flipped);

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

2
ответ дан 26 November 2019 в 23:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: