A 到 L 小写和 M 到 Z 大写
A to L lower and M to Z uppercase
我正在尝试为字符串设置一些条件。
条件是如果字符是 A 到 L,则降低它。
如果字符是 M 到 Z 大写。
以下是代码
def fun_exercise_6(word):
low = ['a','b','c','d','e','f','g','h','i','j','k','l']
up = ['m','n','o','p','q','r','s','t','u','v','w','x','y','z']
y_res = ''
for ch in word.lower():
for i in low:
if ch == i:
y_res = y_res+''+ch.lower()
for i in up:
if ch == i:
y_res = y_res+''+ch.upper()
return y_res
print(fun_exercise_6("boat"))
有没有更好的方法来解决这个问题?
是的,上述算法将 运行 二次方时间,这意味着对于较大的字符串,这将需要一些时间。此外,您还循环了两个列表,严格来说,这对时间复杂度没有影响,但会显着降低程序速度。
我们可以使用像 'a' <= c <= 'l'
这样的检查来检查一个字符是否在 'a'
和 'l'
之间。此外,我们在这里不需要自己将字符附加到列表中,我们可以使用 ''.join(..)
来实现。例如:
def fun_exercise_6(word):
return ''.join(
c.lower() if 'a' <= c.lower() <= 'l' else c.upper() for c in word
)
这里我们构建了一个生成器,它发出字符('a'
到 'l'
和 'A'
到 'L'
范围内的字符小写,否则大写)。然后我们将这些字符连接在一起。
短方法
alphabet = []
# Create the alphabet
for letter in range(97,123):
alphabet.append(chr(letter))
# Loop, and enumerate for position being A-L, then M-Z
for num,i in enumerate(alphabet):
if num < 12:
print(i)
else:
# Turn to upper case if it's m-z
i = i.upper()
print(i)
我正在尝试为字符串设置一些条件。
条件是如果字符是 A 到 L,则降低它。
如果字符是 M 到 Z 大写。
以下是代码
def fun_exercise_6(word):
low = ['a','b','c','d','e','f','g','h','i','j','k','l']
up = ['m','n','o','p','q','r','s','t','u','v','w','x','y','z']
y_res = ''
for ch in word.lower():
for i in low:
if ch == i:
y_res = y_res+''+ch.lower()
for i in up:
if ch == i:
y_res = y_res+''+ch.upper()
return y_res
print(fun_exercise_6("boat"))
有没有更好的方法来解决这个问题?
是的,上述算法将 运行 二次方时间,这意味着对于较大的字符串,这将需要一些时间。此外,您还循环了两个列表,严格来说,这对时间复杂度没有影响,但会显着降低程序速度。
我们可以使用像 'a' <= c <= 'l'
这样的检查来检查一个字符是否在 'a'
和 'l'
之间。此外,我们在这里不需要自己将字符附加到列表中,我们可以使用 ''.join(..)
来实现。例如:
def fun_exercise_6(word):
return ''.join(
c.lower() if 'a' <= c.lower() <= 'l' else c.upper() for c in word
)
这里我们构建了一个生成器,它发出字符('a'
到 'l'
和 'A'
到 'L'
范围内的字符小写,否则大写)。然后我们将这些字符连接在一起。
短方法
alphabet = []
# Create the alphabet
for letter in range(97,123):
alphabet.append(chr(letter))
# Loop, and enumerate for position being A-L, then M-Z
for num,i in enumerate(alphabet):
if num < 12:
print(i)
else:
# Turn to upper case if it's m-z
i = i.upper()
print(i)