我想在Python 3中交换string
的大小写:
以下代码起作用:
print("".join([i.lower() if i.isupper() else i.upper() for i in s]))
但我的循环没有:
s = 'Terra'
for i in s:
if i.isupper():
i.lower()
else:
i.upper()
print(s)
我的循环有什么问题?我知道列表理解就像是压缩的1行循环,我想这里的代码也差不多。我知道像swapcase
函数这样的解决方案已经存在,但我正在这里训练一些逻辑
Tags:
试试看
在列表理解中,您正在创建一个列表,但在循环中,您没有为任何对象分配
i.lower()
或i.upper()
要获得与循环相同的功能,您需要执行以下操作:
为了回答您关于哪种方法更快的后续问题,我对所讨论的四种方法进行了测试:
out_put_str += i.lower()
print(i.upper(), end="")
s.swapcase()
选项3绝对是最慢的,在2ms时比其他方法慢约3倍,但其他方法相当相似,时间范围重叠,但它们都在600µs±200µs左右
相关问题 更多 >
编程相关推荐