首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字典键(日期时间)与tuples[1]列表进行比较,如果匹配,则返回tuple[0]

问将字典键(日期时间)与tuples[1]列表进行比较,如果匹配,则返回tuple[0]
EN

Stack Overflow用户
提问于 2022-04-12 18:00:56
回答 1查看 45关注 0票数 -1

我是Python的初学者,很难获得正确的语法。任何帮助都是非常感谢的!

我有一本字典和一个元组列表。我希望将字典的键与元组中的值进行比较,如果满足条件,则返回一个不同的元组值。下面是一个例子:

代码语言:javascript
复制
dictionary = {datetime.datetime(2022, 4, 12, 9, 30): 30, datetime.datetime(2022, 4, 12, 11, 0): 60, datetime.datetime(2022, 4, 12, 13, 0): 30}

tuplelist = [(1, datetime.time(6, 45, 21)), (2, datetime.time(7, 15, 21)), (3, datetime.time(7, 45, 21)...etc)

目标是查看我的字典键属于哪个30分钟的增量,并使用存储在tuple列表中的增量号来更新它。我试过的是:

代码语言:javascript
复制
for k,y in dictionary: 
  for i, t in tuplelist:
    if t <= k <= (t+ datetime.timedelta(minutes = 30)):
      dictionary[k] = t

我得到的错误无法解压缩不可迭代类型的datetime。

欢迎任何帮助和/或解释!我真的很喜欢学习代码,但不是从CS背景中学习,所以除了正确的语法之外,我总是在寻找它是如何工作的。

谢谢!

工作解决方案的更新:

代码语言:javascript
复制
newdic = {}

for k,v in dictionary.items():
  for item in mylist:
    i, t = item
    if t <= k.time() <= (datetime.combine(datetime.today(),t) + datetime.timedelta(minutes=30)).time():
      newdic.update({i : v})
    else:
      continue
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-12 18:19:05

这不是完整的答案。看看它是否有助于在评论之前解决早期的问题。

代码语言:javascript
复制
import datetime

dictionary = {datetime.datetime(2022, 4, 12, 9, 30): 30,
              datetime.datetime(2022, 4, 12, 11, 0): 60,
              datetime.datetime(2022, 4, 12, 13, 0): 30}

tuplelist = [(1, datetime.time(6, 45, 21)), (2, datetime.time(7, 15, 21)),
             (3, datetime.time(7, 45, 21),)]
for k, y in dictionary.items():
    for item in tuplelist: # get each tuple from the list
        i, t = item # unpack the tuple into i and t
        print(f'{i=} {t=}') # Check i and t values
        # if t <= k <= (t + datetime.timedelta(minutes=30)):
        #     dictionary[k] = t
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71847256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档