Настройка location.hash в кадрах

Это не то, как словари или списки работают в Python. Доступ к значениям списка осуществляется по их индексу, а не по самому значению. Доступ к значениям словаря осуществляется любым ключом для этого значения. Итак, в вашем примере, чтобы найти все ключи больше значения ввода, код должен выглядеть следующим образом:

Получить ввод и превратить ввод, который мы предполагаем, будет числом, в целое число.

min_value = int(input('Enter the minimum key value to search for: '))

Добавьте список, к которому мы добавим соответствующие значения.

valid_values = []

Перебирать ключи в словаре, проверяя, не превышает ли оно заданное минимальное значение.

for key in dictionary:
    if key > min_value:
        valid_values.append(key)

И это все. У вас есть список со всеми значениями, превышающими введенное число.

Более эффективный способ сделать это - использовать понимание списка, например так:

valid_values = [key for key in dictionary if key > min_value]

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

Надеюсь, это поможет!

6
задан Josh Lee 27 July 2010 в 10:52
поделиться

4 ответа

WebKit (и следовательно, Chrome) ведут себя странно с location.hash. Существует несколько открытых ошибок об этом, самое соответствующее является, вероятно, этим: https://bugs.webkit.org/show_bug.cgi? id=24578, который документирует Вашу проблему наличия обновления страницы, когда location.hash изменяется. Похоже, что Ваш наилучший вариант прямо сейчас состоит в том, чтобы скрестить Ваши пальцы и надеяться, что это быстро фиксируется.

Я не могу воспроизвести ошибку в IE7, хотя, и Вы - первый человек в возрастах, я видел, что поддержки IE5.5, таким образом, я не могу действительно помочь Вам там ;)

6
ответ дан 8 December 2019 в 17:27
поделиться

Вы попытались создать скрытые ссылки на хеши и запустить щелчок даже по ним?

0
ответ дан 8 December 2019 в 17:27
поделиться

Как насчет location.href = '#yourhash'; Может быть, это обходит ошибку.

0
ответ дан 8 December 2019 в 17:27
поделиться

Я также имел эту проблему. Моя ситуация позволила мне создать мероприятие Unibind окна, которое установило хеш со значением, которое я тоже хотел, чтобы он был в качестве браузера пользователя на следующую страницу или обновленную. Это работало для меня, но не уверена, что это будет работать для вас.

с jQuery, я сделал:

if($.browser.webkit){
    $(window).unload(function() {
        top.window.location.hash = hash_value;
    });
}else{
    top.window.location.hash = hash_value;
}

Технически вам не нужно делать проверку WebKit, но я подумал, что люди, которые используют Firefox, может быть приятно видеть правильное значение хеша, прежде чем они обновляют фрейметы.

-jacob

2
ответ дан 8 December 2019 в 17:27
поделиться
Другие вопросы по тегам:

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