【问题标题】:Error while Iterating through a list遍历列表时出错
【发布时间】:2018-08-17 14:59:05
【问题描述】:
[{'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}]

那是我的口号。

我的代码列出 dict_month 的值

dict_month = []    
jan_month= []
for x in file_st:
    a=calendar.month_name[int(x['Start Time'][5:7])] #month name
    b=parser.parse(x['Start Time']).strftime("%a")  # day name
    dict_month.append({a:b})     # [{}]

for x in dict_month:
    jan_month.append(x['January'])

我得到的错误是

    KeyError                                  Traceback (most recent call 
last)
<ipython-input-42-879788f99587> in <module>()
 23 
 24 for x in dict_month:
---> 25     jan_month.append(x['January'])
     26 

 KeyError: 'January'

代码哪里出错了?我该如何纠正?

输出 [太阳,太阳,太阳]

编辑 its a key error 这应该会有所帮助。

【问题讨论】:

  • 预期输出是什么?
  • file_st 是什么?
  • @UbdusSamad file_st 的时间戳为 yyyy-mm-dd hh-mm-ss
  • @WillDaSilva 预期输出为 [sun,sun,sun]

标签: python arrays dictionary append


【解决方案1】:

希望对你有帮助:

dict_month = [{'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}]  

jan_month =  [x['January'] for x in dict_month]

>>>['Sun', 'Sun', 'Sun', 'Sun']

【讨论】:

    【解决方案2】:
    [{'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}]
    

    不是字典

    dict 是包含在 {}

    中的内容
     {'January': 'Sun', 'January': 'Sun','January': 'Sun','January': 'Sun'}
    

    应该是你的字典

    [] 中包含的任何内容都是列表

    技术上如此

    [{'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}]
    

    是一个列表,列表中的每一项都是一个具有1个键值对

    的dict
    x = [{'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}]
    
    xyz = []
    
    for y in x:
         xyz.append(y['January'])
    
    print(xyz)
    

    【讨论】:

    • 你需要了解列表和字典的区别,
    • 一个列表是列表文字写在方括号 [ ] x = [sun,mon,tue] 是一个列表
    • x = {'January': 'Sun', 'January': 'Sun','January': 'Sun','January': 'Sun'} january 是关键,而 sun 是值 key:value
    • dict_month = [{'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}] jan_month= [] for y in dict_month: jan_month.append(y['January']) print (jan_month)
    【解决方案3】:

    dict_month 是一个字典列表,值可以附加到一个新的列表中,即 jan_month。

    >>> dict_month = [{'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}, {'January': 'Sun'}]
    >>> jan_month = []
    >>> for x in dict_month:
    ...     jan_month.append(x['January'])
    ...
    >>> jan_month
    ['Sun', 'Sun', 'Sun', 'Sun']
    

    【讨论】:

    • 是的,但它正在工作,它没有获得密钥,这就是它在您的代码中引发错误的原因。可能是您的 dict_month 不正确并且不包含任何名称为“January”的密钥
    • 为什么没有拿到钥匙?
    • 显示您在代码中分配给 x 的 dict_month 值(您在驱动器上共享的代码)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2021-08-31
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多