【Python】对一个字符串中的所有英文字母进行排序
2023-09-11 14:22:09 时间
题目
对一个字符串中的所有英文字母进行排序
栗子
字符串
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频道:魔都吴所谓,获取更多资源分享与行业交流的信息~~~
相关文章
- 《Effective Python》笔记 第六章-元类与属性
- Python基础(1)--Python编程习惯与特点
- 【python cookbook】【数据结构与算法】14.对不原生支持比较操作的对象排序
- 本人20年毕业生,机械专业的我裸辞在家学Python(0基础转行)
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Python语言学习:字典排序相关案例实现(一行代码对字典按照key或value升序排序并输出、利用sorted对字典按照value进行递增排序,并给定排名索引,组成新字典输出)
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画、版权声明(如README.md)等之详细攻略
- 《看漫画学Python》1、2版分享,python最佳入门教程,中学生用业余时间都能学会,北大教授看完都这样定义它
- python如何快速上手?
- 〖Python自动化办公篇㉑〗- python实现邮件自动化 - 定时发送邮件
- 60行代码出炫酷效果之 python语音控制电脑壁纸切换
- Python批量采集美女内容并把音频数据和画面内容合并保存
- python实现PCA(主成分分析)降维
- 【LeetCode Python实现】34. 在排序数组中查找元素的第一个和最后一个位置(中等)
- C++调用C++项目中的Python脚本中的函数和类。,在,工程,python
- Python编程:twine模块打包python项目上传pypi
- python 将一个JSON 字典转换为一个Python 对象
- python基础===八大排序算法的 Python 实现
- Python编程语言学习:python中浅复制/深复制(或浅拷贝/深拷贝)的简介、案例应用注意事项之详细攻略