以下内容是否可以转换为列表解析?
cleaned_list = []
for item in dirtry_list:
try:
item.video
except Video.DoesNotExist:
pass
else:
cleaned_list.append(item)
以下内容是否可以转换为列表解析?
cleaned_list = []
for item in dirtry_list:
try:
item.video
except Video.DoesNotExist:
pass
else:
cleaned_list.append(item)
你不能在列表推导式中放置try:
语句。 生成器用于更复杂的列表处理:
def clean(lst):
for item in lst:
try:
item.video
except Video.DoesNotExist:
pass
else:
yield item
cleaned_list = clean(dirty_list)
[x for x in clean(dirty_list)]
吗? - LondonRobcleaned_list
将会是一个迭代器。如果你想要得到一个列表,你可以简化你的代码为 list(clean(dirty_list))
。 - 153957鉴于你在其他问题中使用的是Django,只需检查实际字段即可。
cleaned_list = [item for item in dirty_list if item.video_id is not None]
cleaned_list = [item for item in dirty_list if not item.video_id]
的翻译如下:cleaned_list = [item for item in dirty_list if not item.video_id]
- MFBPython:
cleaned_list = filter(lambda x: hasattr(x, 'video'), dirty_list)
Django: 如果dirty_list是一个查询集,您可以执行以下操作
cleaned_list = dirty_list.filter(video__isnull=False)