Python字符串排序的两种方法详解

2023-05-16

感谢
转载自:https://blog.csdn.net/space_walk/article/details/102738583

Python中没有直接对字符串排序的方法,下面介绍两种方法对字符串进行排序。
第一种方法,将字符串转换成数组,对数组排序后,再转换成字符串。代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

def main():
	# 字符串
    s = "HelloWorld!"
    # 转换成数组
    l = list(s)
    # 对数组排序,注意,该方法没有返回值
    l.sort()
    # 转换成数组
    s = "".join(l)
    print(s)
    # 结果如下:
    # !HWdellloor

if __name__ == "__main__":
    main()

 

第二种方法,原理和上面的一样,只不过是使用lambda表达式。先展示代码,再详细解释代码。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

def main():
	s = "HelloWorld!"
    s = "".join((lambda x: (x.sort(), x)[1])(list(s)))
	print(s)
	# 结果如下:
    # !HWdellloor

if __name__ == "__main__":
    main()

 

来分析分析语句“s = “”.join((lambda x: (x.sort(), x)[1])(list(s)))”。首先最外层是一个很基础的函数,在一个字符串中加入元素(lambda x: (x.sort(), x)[1])(list(s)),该元素是一个匿名函数。代码 (lambda x: (x.sort(), x)[1]) 表示函数体,(list(s)) 表示该函数的参数,就是将 s 转换成 list 传入到该匿名函数中。匿名函数接收 list,在该函数体内用形参 x 表示。函数体内的 (x.sort(), x)[1] 就是该匿名函数的返回值。为什么要这么写的?因为 Python 中 list 的排序方法没有返回值,所以必须先将 list 排序,然后在返回 list。但是匿名函数只能有一句代码,所以用该语句 (x.sort(), x)[1] 来返回排序后的 list。在这个 tuple 中,x.sort() 返回None, 但是此时x已经排好序了,所以第二个 x 已经是有序的 list,最后加一个[1],表示返回的是有序的 x。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python字符串排序的两种方法详解 的相关文章

  • PostgreSQL数据库导出建表语句的方法

    pg dump U postgres d dbname s gt sql txt
  • spyder导入tensorflow包

    一 xff0e spyder介绍 Anaconda中自带的集成开发环境用于科学计算还是蛮好的 xff0e 它和其他的Python开发环境相比 xff0c 它最大的优点就是模仿MATLAB的 工作空间 的功能 xff0c 可以很方便地观察和修
  • ValueError: Disable frame-skipping in the original env. 解决方案

    问题描述 今天试图在Atari上运行以下代码时 xff0c 出现了题目中的bug xff1a env 61 AtariPreprocessing env grayscale obs 61 True scale obs 61 True ter
  • OpenKylin适配和虚拟打印机

    最近在测国产OS客户端部分 首先客户端程序在CentOS全部使用没毛病 xff0c 但是CentOS桌面体验比较差 然后就试了UOS xff0c 在UOS上测试到打印这块花了很多时间 xff0c 碰到问题是CUPS有反应 xff0c 但是没
  • 基础命令整理

    1 who显示的是当前真正登录系统中的用户 16 05 59 root 64 localhost who ZT tty2 2021 11 03 10 45 tty2 ZT pts 1 2021 11 05 08 28 10 0 0 1 2
  • ubuntu apache2 配置安装ssl证书,https

    1 申请免费阿里证书 2 配置证书 在这里 xff0c 我假设你已经会配置基本的 etc apache2 sites available 000 default conf这个文件来达到已经可以通过 http 的方式来访问你的站点 在 etc
  • 今日头条2018校招笔试题之字符串的问题

    今日头条 xff0c 很干脆 xff0c 直接就四个编程 xff0c 一个改错 做的很烂 xff0c 只能来写一个题 字符串S由小写字母构成 xff0c 长度为N xff0c 定义一种操作 xff0c 每次都可以挑选字符串中任意的两个相邻字
  • ios 瀑布流

    瀑布流 xff0c 又称瀑布流式布局 是比较流行的一种 页面布局 xff0c 视觉表现为参差不齐的多栏布局 xff0c 随着页面滚动条向下滚动 xff0c 这种布局还会不断加载 数据块并附加至当前尾部 说明 xff1a xff08 1 xf
  • 旧电脑变废为宝成为nas

    老台式机1台 可用任意电脑一台 xff0c 用来调试nas U盘1个 xff0c 64M以上 黑群晖安装包 显示器 下载黑群晖安装工具包 xff1a http pan baidu com s 1eRSAwAQ 使用ChipEasy检查并记录
  • debian的初始化操作

    设置默认的编辑器为vim uppdate alternatives config editor 输入你选择的编辑器即可 配置visudo z ALL ALL ALL NOPASSWD ALL 增加开启termial的快捷键 系统设置 快捷键
  • go调用本地python代码

    go调用本地python代码 1 mac环境下测试 目录结构 xff1a go代码 xff1a xff08 windows没有python3命令 xff0c windows的话改成python即可 xff09 span class toke
  • (四) Docker之Dockerfile编写与指令解析,自定义镜像实战

    Docker之编写Dockerfile 1 Dockerfile介绍1 1 docker build1 2 dockerignore文件1 3 Dockerfile格式 2 Dockerfile构建过程解析2 1 Dockerfile内容基
  • 如何安装指定版本Pytorch:

    如何安装指定版本Pytorch 使用conda安装指定版本 conda install pytorch 61 0 1 10 c soumith 使用pip安装指定版本 pip install pytorch 61 61 0 1 10 如何查
  • gym ValueError: too many values to unpack (expected 4) 解决方案

    问题描述 今天在执行以下代码时出现了题述错误 xff1a new obs rew done info 61 self env step action new obs rew done info 61 self env step action
  • linux查看openjdk的安装的路径(环境变量)

    前言 xff1a 现在基本上linux为了避免版权问题都会默认的为你安装开源的openjdk xff0c 而不是jdk 有些时候需要运行一些环境需要用到jdk的环境变量 xff0c 本文就是简单描述下如何查看openjdk的环境变量 1 e
  • linux图形界面基本知识(X、X11、Xfree86、Xorg、GNOME、KDE之间的关系)

    转载 xff1a http apps hi baidu com share detail 11596555 LINUX初学者经常分不清楚linux和X之间 xff0c X和Xfree86之间 xff0c X和KDE xff0c GNOME等
  • windows xp远程连接

    本节将用到windows网络共享 xff0c 实现外网可以远程连接局域网内的任意主机 实验环境 两台windows xp虚拟机 xff08 内网 43 外网 xff09 xff0c 一台主机 配置外网虚拟机 首先 xff0c 为虚拟机添加两
  • 系统架构之三(业务运营支撑系统)

    本人从事过3年的移动业务运营支撑系统开发 xff0c 行业术语叫做boss系统 xff0c 后又转入游戏行业进行游戏开发 现设计一个业务运营支撑系统的架构如下 xff1a 详细解释各模块如下 xff1a gateway dispatch x
  • Debian下安装xfce4

    环境 Debian wheezy stable 步骤 1 第一张光盘安装Debian 速度快 xff0c 可定制 2 设置 etc apt sources list 去掉cdrom的路径 3 安装apt spy xff0c 搜索最符合自己的
  • 天天讲路由,那 Linux 路由到底咋实现的!?

    大家好 xff0c 我是飞哥 容器是一种新的虚拟化技术 xff0c 每一个容器都是一个逻辑上独立的网络环境 Linux 上提供了软件虚拟出来的二层交换机 Bridge 可以解决同一个宿主机上多个容器之间互连的问题 xff0c 但这是不够的

随机推荐