Python实现像awk一样分割字符串
作者:小几斤 发布时间:2022-07-29 18:42:07
若你使用过 Shell 中的 awk 工具,会发现用它来分割字符串是非常方便的。特别是多个连续空格会被当做一个处理。
[root@localhost ~]# cat demo.txt
hello world
[root@localhost ~]#
[root@localhost ~]# awk '{print$1,$2}' demo.txt
hello world
可是转换到 Python 上面来呢?结果可能是这样的。
>>> msg='hello world'
>>> msg.split(' ')
['hello', '', '', '', 'world']
与我预想的结果不符,多个空格会被分割多次。
那有什么办法可以达到 awk 一样的效果呢?
有两种方法。
第一种方法
不加参数,这种只适用于将多个空格当成一个空格处理,如果不是以空格为分隔符的场景,这种就不适用了。
>>> msg='hello world'
>>> msg.split()
['hello', 'world']
第二种方法
使用 filter 来辅助,这种适用于所有的分隔符,下面以 - 为分隔符来举例。
>>> msg='hello----world'
>>> msg.split('-')
['hello', '', '', '', 'world']
>>>
>>> filter(None, msg.split('-'))
['hello', 'world']
是不是很神奇,filter 印象中第一个参数接收的是 函数,这里直接传 None 居然有奇效。
查看了注释,原来是这个函数会适配 None 的情况,当第一个参数是None的时候,返回第二个参数(可迭代对象)中非空的值,非常方便。
换用函数的写法,可以这样
>>> msg='hello----world'
>>> msg.split('-')
['hello', '', '', '', 'world']
>>>
>>> filter(lambda item: True if item else False, msg.split('-'))
['hello', 'world']
来源:https://blog.51cto.com/14887308/2524112
猜你喜欢
- 在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题。其实,在SQL Server中集成了很多成批导入数据的方法。有些项目实施顾问头疼
- Django是一个基于Python Web框架的高级Web框架,允许快速开发和干净,务实的设计。今天,我们将创建一个待办事项应用程序,以了解
- 如下所示: static void Main()&nbs
- <% a="福建是中国的一个省|我们美丽中国的武夷山!" b="中国,我们,武夷山,福建,美国,苹果&q
- 以下是个人对Python深浅拷贝的通俗解释,易于绕开复杂的Python数据结构存储来进行理解!高级语言中变量是对内存及其地址的抽象,Pyth
- 简单的2048小游戏不多说,直接上图,这里并未实现GUI之类的,需要的话,可自行实现:接下来就是代码模块,其中的2048游戏原来网络上有很多
- <div id="d1"></div> <script > fu
- 什么是 conda ?conda 是开源包(packages)和虚拟环境(environment)的管理系统。**packages 管理:*
- 如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子:$unsafe_variable = $_
- 记录一下PHP连接MySQL的两种方式。先mock一下数据,可以执行一下sql。/*创建数据库*/CREATE DATABASE IF NO
- 代码如下:CREATE TABLE #tmptb(tbname sysname,tbrows int ,tbREserved varchar
- 我就废话不多说了,直接上代码吧!集成环境:win10 pycharm #!/usr/bin/env python3.5.2# -*- cod
- 在python中的数据类型和控制流这篇文章中我们提到过列表,它是基本的数据类型之一。通俗来说,它就是用来存储一系列数据的。比如存储一个班级的
- 本文教大家调用电脑摄像头进行实时人脸+眼睛识别+微笑识别,供大家参考,具体内容如下一、调用电脑摄像头进行实时人脸+眼睛识别# 调用电脑摄像头
- 最近发现一个叫 Bootstrap 的好东西,Bootstrap 是现在最流行的响应式 CSS 框架,它以移动设备优先,能够快速适应不同设备
- 前言今天给大家分析3个计算机视觉方向的Python实用代码,主要用到的库有:opencv-pythonnumpypillow要是大家所配置的
- 运行环境:IIS脚本语言:VBScript数据库:Access/SQL Server数据库语言:SQL1.概要:不论是在论坛,还是新闻系统,
- Python报错:对象不存在此属性保错代码:我就搞不懂了,怎么会没有此属性② 原因:Python报错位置不对③总结下:在给对象属性赋值的时候
- SEO是指搜索引擎优化,主要就是通过对网站的结构、标签、排版等各方面的优化,使搜索引擎更容易抓取网站的内容,并且让网站的各个网页在等搜索引擎
- 前言引用一张比较清晰易懂的图php伪协议是php自己支持的一种协议与封装协议,简单来说就是php定义的一种特殊访问资源的方法。常见的php伪