[英]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.