2011-07-29 96 views
1

正在嘗試構建一個邏輯,但並不確定如何處理python。我有以下字典迭代字典並從內部字典中提取值

{datetime.datetime(2011, 7, 18, 13, 59, 25): (u'hello-world', u'hello world'), datetime.datetime(2011, 7, 17, 15, 45, 54): (u'mazban-archeticture', u'mazban arch'), datetime.datetime(2011, 7, 7, 15, 51, 49): (u'blog-post-1', u'blog post 1'), datetime.datetime(2011, 7, 8, 15, 54, 5): (u'blog-post-2', u'blog post 2'), datetime.datetime(2011, 7, 18, 15, 55, 32): (u'blog-post-3', u'blog post 3')} 

我想通過字典來遍歷,看看日期等於今天的日期,然後使用內部字典來建立一個使用第一個值作爲蛞蝓的URL。我能夠重複,但我不知道如何來獲取內在價值

# will only print dates 
for i in dic: 
print i 

回答

6

在蟒蛇當您使用「在DIC X」是一樣dic.keys用「的X() ' - 你正在遍歷只有鍵而不是(鍵,值)對。 做你想做的,你可以看看在items()iteritems()字典的方法是什麼,他們可以讓你獲得訪問(鍵,值)對:

for key,value in dic.iteritems(): 
    if key == datetime.today(): # or (datetime.today() - key).seconds == <any value you expect> 
     # since value is a tuple(not a dict) and you want to get the first item you can use index 0 
     slug = value[0] 

瞭解更多關於dictionaries and supported methods

0

如果您要訪問的值,那麼你下標的字典,除非你真正想要的元組,這是比使用任何.items().iteritems()方法麻煩一般較少:

for i in dic: 
print i, dic[i] 

順便說一句,你說'內部字典',但你只有一個字典,值是元組。