我在字典中有一本字典,如下所示:
我的代码查找今天的日期,如果它存在于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不支持索引
答案 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
但是有更好的选择来存储这些信息。