遍历列表时出错

Posted

技术标签:

【中文标题】遍历列表时出错【英文标题】: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] 【参考方案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 drive.google.com/file/d/1m5l6DbRymIWK7U5u9Y45QeGXbMzwqLbY/…看看这个错误 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']

【讨论】:

仍然遇到错误drive.google.com/file/d/1m5l6DbRymIWK7U5u9Y45QeGXbMzwqLbY/… 是的,但它正在工作,它没有获得密钥,这就是它在您的代码中引发错误的原因。可能是您的 dict_month 不正确并且不包含任何名称为“January”的密钥 为什么没有拿到钥匙? 显示您在代码中分配给 x 的 dict_month 值(您在驱动器上共享的代码)。

以上是关于遍历列表时出错的主要内容,如果未能解决你的问题,请参考以下文章

从列表视图单击项目时出错

为啥在replit中删除列表时json会出错

将数据框转换为列表时出错

创建太多播放列表时出错?

Flutter:显示单个列表值时出错

读取属性列表时出错