我有一個元組作爲鍵的字典。元組內部是一個數字和正則表達式。作爲鍵的元組對應於任何值。我想使用元組(即正則表達式)作爲鍵來訪問該值。例如,如何在字典中使用正則表達式作爲鍵,以及如何使用它進行訪問?
import re
t_dict = dict()
t[(1, r"[0-9]+")] = "Hello world!"
t[(2, r"[a-z]+")] = "Hi!"
我在正確的表達方式上做了正確的事情嗎?如果不是的話,你如何在上面加一個正則表達式?
接下來是我想要使用鍵獲取字典中的值。例如,我想這樣做。
print t[(1, '99')] # this should print "Hello world!"
print t[(2, 'hey')] # this should print "Hi!"
沒有內置的支持您的用例。由於字典只是一個關鍵值對,因此不存在這種基於模式的支持。而且,這也不是一個體面的數據結構。也許你可以從更高層面告訴我們你的用例,所以我們可能會建議你採用不同的方法。 –
這沒有意義;字典的一點是它是一個散列表,所以你可以在'O(1)'中用鍵查找值。你可以編寫一個你想要的數據結構,但它必須對正則表達式「鍵」進行'O(n)'掃描以找到匹配的值。 – jonrsharpe
對不起,我不明白你的意思,先生。我發現了一個類似t [(1,'a')] =「Hello World!」的代碼,t [(2,'b')] =「Hi!」。因此,檢索值「Hello World」只是t [(1,'a')]。 我試圖模擬使用字典作爲我的DFA轉換列表的DFA。所以,我在那裏寫的正則表達式意味着「從0-無限的任何數字」,而所有的字符串只有來自a-z的字母。 –