题目
对一个字符串中的所有英文字母进行排序
栗子
字符串
a = 'hello word'
排序后结果:
['d', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']
code
本题采用了两种方法进行操作;
方法一
# 方法一:使用sorted
def word_sort_m1(words):
# 先转换成列表
tmp = [i for i in words if i != ' ']
res = sorted(tmp)
return res
if __name__ == '__main__':
a = 'hello word'
res_1 = word_sort_m1(a)
print("res_1 : ", res_1)
结果
res_1 : ['d', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']
方法二
# 方法二:转成对应数字排序,排完之后再转成对应的字母
def word_sort_m2(words):
res3 = [ord(i) for i in words if i != ' ']
for i in range(len(res3)):
for j in range(len(res3) - i - 1):
if res3[j] > res3[j + 1]:
res3[j], res3[j + 1] = res3[j + 1], res3[j]
return [chr(i) for i in res3]
if __name__ == '__main__':
a = 'hello word'
res_2 = word_sort_m2(a)
print("res_2 : ", res_2)
结果
res_2 : ['d', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']
从大道小的排序
刚才排序后的两种结果都是从小到大的排序,如果在实际过程中可能会用到从大道小的场景,我们挑第二种方式做变更
# 方法二:转成对应数字排序,排完之后再转成对应的字母
def word_sort_m2(words):
res3 = [ord(i) for i in words if i != ' ']
for i in range(len(res3)):
for j in range(len(res3) - i - 1):
if res3[j] < res3[j + 1]:
res3[j], res3[j + 1] = res3[j + 1], res3[j]
return [chr(i) for i in res3]
if __name__ == '__main__':
a = 'hello word'
res_2 = word_sort_m2(a)
print("res_2 : ", res_2)
结果
res_2 : ['w', 'r', 'o', 'o', 'l', 'l', 'h', 'e', 'd']
第一种方法也很好做倒序,只需要一个参数即可以解决这个问题:
# 方法一:使用sorted
def word_sort_m1(words):
# 先转换成列表
tmp = [i for i in words if i != ' ']
res = sorted(tmp,reverse=True)
return res
在sorted中添加一个reverse=True
就OK了;
说的讲解一种方式,没有刹住车两种方式都给讲出来了~~~
汇总code
# 对一个字符串中的所有英文字母进行排序
# 方法一:使用sorted
def word_sort_m1(words):
# 先转换成列表
tmp = [i for i in words if i != ' ']
res = sorted(tmp)
return res
# 方法二:转成对应数字排序,排完之后再转成对应的字母
def word_sort_m2(words):
res3 = [ord(i) for i in words if i != ' ']
for i in range(len(res3)):
for j in range(len(res3) - i - 1):
if res3[j] > res3[j + 1]:
res3[j], res3[j + 1] = res3[j + 1], res3[j]
return [chr(i) for i in res3]
if __name__ == '__main__':
a = 'hello word'
res_1 = word_sort_m1(a)
res_2 = word_sort_m2(a)
print("res_1 : ", res_1)
print("res_2 : ", res_2)
结果
res_1 : ['d', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']
res_2 : ['d', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']
欢迎关注微信公众号、blibli频道:魔都吴所谓,获取更多资源分享与行业交流的信息~~~