簡體   English   中英

訪問特定的python defaultdict

[英]Accessing specific python defaultdict

說我有一個默認值的值:

x = defaultdict(int)
x[a,1] = 1
x[a,2] = 2
x[a,3] = 3
x[b,1] = 4
x[b,2] = 5
x[b,3] = 6
x[c,1] = 7
x[c,2] = 8
x[c,3] = 9

如何僅訪問第一個索引為c的那些元素

或更確切地說,我如何實現這樣的事情:

for key2 in x[,c]:
    print key2

像普通字典一樣,默認字典在鍵上沒有任何特殊的切片行為。 鍵只是對象,在您的情況下,它們只是元組。 該字典不知道或不執行有關鍵的內部結構的任何操作。 (例如,可能具有不同長度的不同鍵。)獲得所需內容的最簡單方法是:

for key in x.keys():
   if key[0] == 'c':
       print key, x[key]

另一種可能性是改為使用defaultdicts的defaultdict,並訪問x['c'][1]類的元素。

您還可以在計算機上使用以下命令,那就是更快一點:另外,我不知道您的用例,但是您選擇的數據結構並不是特別有效的查詢。

for i,e in x:
    if i=='c':
        print (i,e),x[(i,e)]

測試:

def func1():
    for key in x.keys():
       if key[0] =='c':
           return key, x[key]
def func2():
    for i,e in x:
        if i=='c':
            return (i,e),x[(i,e)]



timeit func1()

100000 loops, best of 3: 1.9 us per loop


timeit func2()
1000000 loops, best of 3: 1.56 us per loop

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM