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

2024-09-25 14:19:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字典里有一本字典,如下所示:

我的代码查找今天的日期,如果它存在于dict中,它应该打印“founda match at”+dict(name)

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],我就会得到错误类型error:

'set' object does not support indexing


Tags: 代码namecomtodaydatetime字典thatdict
3条回答

你可以用这样的方法:

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

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

当您创建dict时,您使用的是一个set,在这里您应该使用列表或元组。你知道吗

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

集合是无序的数据结构,因此不能使用索引访问它们。 即使将它们类型转换为列表,然后使用索引,即list(dict[name])[1],也不能保证返回正确的元素,因为列表的顺序没有定义。你知道吗

挑选匹配元素的方法可以是迭代集合,并选择与type等条件匹配的元素和任何可能的regex,但这也容易出错,除非集合中几乎没有不同类型的元素。你知道吗

相关问题 更多 >