NameError: name 'd' is not defined in Python list comprehension
NameError: name 'd' is not defined in Python list comprehension
尝试 运行 python 3.7 中的以下代码:
date_list = [datetime.datetime.strptime(d['date'], '%Y-%m-%d') for d in date_settings and d['date'] != None]
这是导致的错误,有人可以向我解释为什么这个列表理解看不到它自己的变量吗?
date_list = [datetime.datetime.strptime(d['date'], '%Y-%m-%d') for d in date_settings and d['date'] != None]
NameError: name 'd' is not defined
这里是输入的数组:
[{'date': '2020-05-08', 'changed_at': '2020-05-07T20:35:07.854Z'}, {'date': '2020-05-09', 'changed_at': '2020-05-07T20:35:40.604Z'}, {'date': '2020-05-10', 'changed_at': '2020-05-07T20:35:42.936Z'}]
在你的理解里,你写的地方
for d in date_settings and d['date'] != None
你应该有 if
,而不是 and
。
正如你目前所理解的那样,理解是试图理解表达式
date_settings and d['date'] != None
作为 d
应该迭代的东西,这就是为什么它不知道 d
在这里应该意味着什么。
尝试 运行 python 3.7 中的以下代码:
date_list = [datetime.datetime.strptime(d['date'], '%Y-%m-%d') for d in date_settings and d['date'] != None]
这是导致的错误,有人可以向我解释为什么这个列表理解看不到它自己的变量吗?
date_list = [datetime.datetime.strptime(d['date'], '%Y-%m-%d') for d in date_settings and d['date'] != None]
NameError: name 'd' is not defined
这里是输入的数组:
[{'date': '2020-05-08', 'changed_at': '2020-05-07T20:35:07.854Z'}, {'date': '2020-05-09', 'changed_at': '2020-05-07T20:35:40.604Z'}, {'date': '2020-05-10', 'changed_at': '2020-05-07T20:35:42.936Z'}]
在你的理解里,你写的地方
for d in date_settings and d['date'] != None
你应该有 if
,而不是 and
。
正如你目前所理解的那样,理解是试图理解表达式
date_settings and d['date'] != None
作为 d
应该迭代的东西,这就是为什么它不知道 d
在这里应该意味着什么。