将循环和条件语句转换为列表推导式

3 投票
2 回答
547 浏览
提问于 2025-04-17 02:33

能不能把下面的代码转换成Python的列表推导式:

values = [a,b,c,d,...]

converted_values = []
for item in values:
    if type(item) == datetime.date:
        converted_values.append(item)
    else:
        converted_values.append(item.decode('utf-8'))

2 个回答

5
converted_values = [item if type(item) == datetime.date else item.decode('utf-8')
                       for item in values]

我猜你是想说 utf-8

另外,Python的文档建议使用 isinstance(item, datetime.date),而不是 type(item) == datetime.date

9

你可以使用条件表达式来实现这个功能。

converted_values = [item if type(item) == datetime.data
                    else item.decode('utf-8')
                    for item in values]

Python中的条件语句非常容易理解。下面是一些例子,展示它们是如何工作的:

print("yes" if True else "no") # prints "yes"
print("yes" if False else "no") # prints "no"

撰写回答