使用词典为单个键指定一个数字范围

时间:2015-06-02 22:38:10

标签: python dictionary range

我正在写一本字典,但我想出了一个问题。问题是,我希望能够使用多于1个数字来引用字典中的密钥。

例如,我想要将1到5之间的数字范围全部分配给,例如“apple”。所以我想出了这个:

var down = [];
$(document).keydown(function (e) {
     down[e.keyCode] = true;
}).keypress(function (e) {
     if (down[17] && down[32]) {
         var $sampleTextBox = $("input#sampleTextBox");
          $sampleTextBox.val($sampleTextBox.val().replace(/\s/g, ''));
         alert($sampleTextBox.val().length)
          alert("Ctrl + Space Pressed!");
     }
     down[e.keyCode] = false;
}).keyup(function (e) {
     if (down[17] && down[32]) {
         var $sampleTextBox = $("input#sampleTextBox");
          $sampleTextBox.val($sampleTextBox.val().replace(/\s/g, ''));
         alert($sampleTextBox.val().length)
          alert("Ctrl + Space Pressed!");
     }
     down[e.keyCode] = false;
});

在程序的当前状态下,它远远无法运行,因此测试是个问题,但我的编辑器没有收到任何问题。我只是想知道,这是正确的方法吗?或者有更好的方法吗?

感谢。

修改

更多信息:我想用my_dict['apple'] = range(1,5) 函数创建一个随机整数。然后,在Python生成该数字之后,我想用它来调用分配给随机整数值的键。事实上,我想让一些东西比其他东西更常见,所以我想把我可以称之为更大的数字范围放大,这样钥匙出现的可能性就变得更大了。对不起,如果它没有多大意义,但在当前状态下,我甚至没有代码来展示我想要完成的任务。

2 个答案:

答案 0 :(得分:1)

你的词典倒退了。如果您希望能够召回任何数字为1-5的'apple',那么您需要将这些数字作为,而不是

for i in range(1,6):  # range(a,b) gives [a,b)
    my_dict[i] = 'apple'

等。然后,my_dict[4] == 'apple'和范围内的其他值也是如此。

这可以创建非常大的字典,其中包含许多相同值的副本。

或者,您可以使用range个对象作为字典键,但除非您创建自己的类,否则测试会更麻烦。

my_dict[range(1,6)] = 'apple'
n = random.randint(1, 5)

for key in my_dict:
    if n in key:
        print(my_dict[key])

...打印apple

答案 1 :(得分:0)

字典中的值可以是任何任意对象。使用给定类型或结构作为值是否有意义仅在完整脚本的上下文中有意义,因此无法告诉您它是否是具有给定信息的正确解决方案。