简体   繁体   English

转换循环和if statemnt到列表理解

[英]Convert loop and if statemnt to a list comprehension

Is it possible to convert the following to a python list comprehension: 是否可以将以下内容转换为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'))

You can use Conditional Expressions to make this work. 您可以使用条件表达式来完成此工作。

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

Python conditionals are fairly readable. Python条件是相当可读的。 Here's some examples to show how they work: 以下是一些示例,说明它们的工作原理:

print("yes" if True else "no") # prints "yes"
print("yes" if False else "no") # prints "no"
converted_values = [item if type(item) == datetime.date else item.decode('utf-8')
                       for item in values]

I assume you meant utf-8 . 我猜你的意思是utf-8

Also, the Python docs recommend using isinstance(item, datetime.date) rather than type(item) == datetime.date . 此外,Python文档建议使用isinstance(item, datetime.date)而不是type(item) == datetime.date

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM