是否有Pythonic列表推导,它使用for循环以及if循环?

时间:2019-07-03 12:03:56

标签: python python-2.7 list-comprehension

这是一个列表列表,带有for循环,可将所有字符转换为大写字母

string = 'Hello'
print "".join([s.upper() for s in string])

这里是列表解析,只能将小写字母转换为大写字母

print "".join([s.upper() for s in string if s.islower()])

是否可以使用列表理解来交换字符串中的大小写?像

print "".join([s.upper() for s in string if s.islower() else s.lower()])

2 个答案:

答案 0 :(得分:4)

您只需要string.swapcase()

答案 1 :(得分:3)

在这里,您可以使用列表理解来做到这一点。请注意,当同时包含if / elseternary operator时,语法必须如下:

  

condition_if_true if condition else condition_if_false

因此,在这种情况下,您可以执行以下操作:

string = 'Hello'

"".join([s.upper() if s.islower() else s.lower() for s in string])
# 'hELLO'