访问和提取字典中的字典集

时间:2016-01-25 09:16:00

标签: python dictionary

我在字典中有一本字典,如下所示:

我的代码查找今天的日期,如果它存在于dict中,则应打印“找到匹配”+ dict(名称)

today = datetime.datetime.now()

if today in dict[name]:
      print "Found a bday for " + str(dict[name])

   #here i need a variable that will hold the email from that name so I can use to somewhere else

如果我原谅打印字典 它看起来像这样:

{'name1': set(['01-25', 'name1@company.com']), 'name2': set(['name2@company.com', '11-29']), 'name3': set(['08-15', 'name3@company.com']), 'name4': set(['01-24', 'name4@company.com'])}

我的问题是如何访问电子邮件。我理解字典中的值当前是一个“设置”的难以理解的方式,我无法通过索引访问它。打印dict[name][1]后,我收到错误TypeError:

  

'设定' object不支持索引

3 个答案:

答案 0 :(得分:0)

集是无序数据结构,因此您无法使用索引访问它们。 即使你将它们转换为列表,然后使用索引,即。 list(dict[name])[1]无法保证返回正确的元素,因为未定义列表的顺序。

您选择匹配元素的方法可以是迭代集合,并选择匹配type等条件和任何可能的正则表达式的元素,但这也容易出错,除非您的集合中的元素很少不同类型。

答案 1 :(得分:0)

您在创建dict时正在使用一个集合,您应该使用列表或元组。

dict.setdefault(name, [emails,bdays])

答案 2 :(得分:0)

您可以使用以下内容:

date = today.strftime('%m-%d')
for names in var.keys():
    if date in var[names]: 
        for x in var[names]:
            if x != date:
                email = x
                print  "Found a bday for " + email

但是有更好的选择来存储这些信息。