2013-12-20 63 views
1

我目前有一個相當大的字典程序。檢索字典值Python

cards = {1.1:"Ace of Spades", 
    1.2:"Ace of Clubs", 
    1.3:"Ace of Diamonds", 
    1.4:"Ace of Hearts", 

    2.1:"Two of Spades", 
    2.2:"Two of Clubs", 
    2.3:"Two of Diamonds", 
    2.4:"Two of Hearts", 

    3.1:"Three of Spades", 
    3.2:"Three of Clubs", 
    3.3:"Three of Diamonds", 
    3.4:"Three of Hearts", 

    4.1:"Four of Spades", 
    4.2:"Four of Clubs", 
    4.3:"Four of Diamonds", 
    4.4:"Four of Hearts", 

    5.1:"Five of Spades", 
    5.2:"Five of Clubs", 
    5.3:"Five of Diamonds", 
    5.4:"Five of Hearts", 

    6.1:"Six of Spades", 
    6.2:"Six of Clubs", 
    6.3:"Six of Diamonds", 
    6.4:"Six of Hearts", 

    7.1:"Seven of Spades", 
    7.2:"Seven of Clubs", 
    7.3:"Seven of Diamonds", 
    7.4:"Seven of Hearts", 

    8.1:"Eight of Spades", 
    8.2:"Eight of Clubs", 
    8.3:"Eight of Diamonds", 
    8.4:"Eight of Hearts", 

    9.1:"Nine of Spades", 
    9.2:"Nine of Clubs", 
    9.3:"Nine of Diamonds", 
    9.4:"Nine of Hearts", 

    10.1:"Ten of Spades", 
    10.2:"Ten of Clubs", 
    10.3:"Ten of Diamonds", 
    10.4:"Ten of Hearts", 

    11.1:"Jack of Spades", 
    11.2:"Jack of Clubs", 
    11.3:"Jack of Diamonds", 
    11.4:"Jack of Hearts", 

    12.1:"Queen of Spades", 
    12.2:"Queen of Clubs", 
    12.3:"Queen of Diamonds", 
    12.4:"Queen of Diamonds", 

    13.1:"King of Spades", 
    13.2:"King of Clubs", 
    13.3:"King of Diamonds", 
    13.4:"King of Hearts"} 

我希望能夠做到。例如打印出11.2(Jack of Clubs)的對應值。然後我也想打印出俱樂部傑克的對應值(11.2)。

我該怎麼做?

編輯

另外我想補充一點,當然它每次都會不一樣的價值。它會被改變。程序生成一個1到13之間的隨機數,然後在1和4之間的一個隨後的數字追加兩個,所以它會是#。#然後我想要檢索該浮點數的相應值。

回答

1

打印出你的隨機選擇的編號對應的值會很容易:

print cards[randomNumber] 

當你想要做反向查找,並打印出相應的「俱樂部傑克」的值時出現問題,或任何相應的卡名稱。使用傳統字典時,這將需要很長時間,因爲它將涉及搜索字典中的每個值。

爲了避免這種情況,您可以創建兩個字典。但是,使用David Zwicker關聯的Two way/reverse map問題中的某個建議會更有效率。