str.split和re.split中空格的区别
一、str.split和re.split的基本用法
1、str.spli的基本用法
现用下面的文件:
1 maqing:abc123
我们要建立一个用户名和用户密码的匹配关系:
 with open("test.txt","r") as file:
     list = file.readlines()
     for line in list:
         user,pwd =line.strip().split(":")  #split按照“:”将文件中内容分为两个值,然后再分别赋值给user,pwd
         print("我是用户名:",user)
         print("我是用户密码:",pwd)
输出结果如下:
我是用户名: maqing
我是用户密码: abc123
2、re.split的基本用法
Python的str类有split方法,但是这个split方法只能根据指定的某个字符分隔字符串,如果要同时指定多个字符来分隔字符串,该怎么办呢?
幸运的是python的re模块中提供的split方法可以用来做这件事情,如下代码示例:
import re
re.split('; |, ',str)
实例:
>>> a='Beautiful, is; better*than\nugly'
>>> import re
>>> re.split('; |, |\*|\n',a)
['Beautiful', 'is', 'better', 'than', 'ugly']
二、str.split("\s")与re.split("\s",str)的区别
str.split("\s")与re.split("\s",str)是不一样的。
两者区别如下:
1,str.split("\s")是照字面上来按照"\s"字符来分割字符串
2,re.split("\s", str)是按照空白来分割,因为正则表达式中的"\s"就是空白space的意思
另外,正则表达式中的中括号意为列举,如[abc]则能匹配含有a或b或c的字符串。
另外python的lambda(实际来自lisp)则能定义匿名函数:
看个例子:
1 g = lambda x:x+1
看一下执行的结果:
g(1)
>>>2
g(2)
>>>3
当然,你也可以这样使用:
lambda x:x+1(1)
>>>2
可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为:
1 def g(x):
2 return x+1
非常容易理解,在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。
所以了解了以上这些之后,第一眼看上去完全看不懂的语句现在可以懂了:
get_dt_from_str = lambda time_str: datetime(tzinfo=utils.LOCAL_TIMEZONE, *([int(i) for i in re.split("[\s:-]", time_str)]))
start_time = get_dt_from_str(start_time) if start_time else None
上面这两个表达式,第一个表达式定义了一个函数,这个函数是根据传入的时间字符串参数,把这个时间字符串
转化为当前时区的datetime参数,这个lambda的第一个变量就是函数传入的参数。在这个表达式中:
re.split("[\s:-]", time_str) 是把time_str这个变量根据空白,:以及- 分割成为字符串list,并分别处理。
所以第二个表达式就可以根据上面定义的匿名函数来直接调用使用了。
str.split和re.split中空格的区别的更多相关文章
- C++中的字符串的输入输出函数、空字符与空格的区别、字符变量赋值和字符串初始化
		
一.字符串输入输出函数 1. cin.get() 逐个字符输入输出 2. cin 可以将整个字符串一次性输入,但是,cin将空格.Tab和回车键,因此不能用于数组的一次性输入. 注意:ci ...
 - str.split()与re.split()的区别
		
str.split(): >>>'hello, world'.split() >>>['hello,','world'] >>>'hello, w ...
 - split(),strip,split("/")[-1] 和 split("/",-1)的区别
		
Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法: str.split(str="",num=string.count(s ...
 - String.split()与StringUtils.split()
		
我们平时进行简单的字符串分割的时候,尽量不要用String自身的split方法,它是匹配正则表达式的,如果遇到$这种特殊字符,需要转义一下.用StringUtils.split()方法会更方便 使用a ...
 - python split(),os.path.split()和os.path.splitext()函数用法
		
https://blog.csdn.net/T1243_3/article/details/80170006 # -*- coding:utf-8 -*- """ @ ...
 - StringUtils.split()和string.split()的区别
		
场景 出于业务考虑,将多个字符串拼接起来时,使用的分隔符是;,;.如果要将这样一个拼接来的字符串分割成原本的多个字符串时,就需要使用到jdk自带的split()方法.不过因为公司的编程规范,改为使用了 ...
 - Python关于去除字符串中空格的方法
		
Python关于去除字符串中空格的方法 在编写程序时我们经常会遇到需要将字符串中的空格去掉的情况,通常我们可以使用下面几种解决方法: 1.strip()方法:该方法只能把字符串头和尾的空格去掉,但是不 ...
 - C# Split的用法,Split分割字符串
		
C# Split的用法,Split分割字符串 分割单个字串:string str="来自张三的亲切问候!;string[] strarry=str.Split(new string[] { ...
 - split("\\s+") 和 split(" +") 有什么区别?
		
原文地址:https://blog.csdn.net/it_taojingzhan/article/details/51968993 "hello world, this is Al&quo ...
 
随机推荐
- SQL性能调优策略
			
1.建立索引 2.避免全表扫描 避免使用is null, is not null,这样写会放弃该字段的索引. 如果会出现这种情况,尽量在设计表的时候设置默认值 比较操作符中!= <>等避免 ...
 - c++ boost库学习二:内存管理->智能指针
			
写过C++的人都知道申请和释放内存组合new/delete,但同时很多人也会在写程序的时候忘记释放内存导致内存泄漏.如下所示: int _tmain(int argc, _TCHAR* argv[]) ...
 - 一个gpio 不受控制的bug
			
前几天调试一个flash灯的驱动程序,这可ic 有两个控制pin, 一个叫en1 一个叫en2, 根据spec的说明,不同的组合将产生不同的输出电流.但我发现,那个en1 这个pin 死活是拉不高的, ...
 - SQL中的5种常用的聚集函数
			
首先你要知道 where->group by->having->order by/limit ,这个就是写sql语句时的顺序 常用的5个聚集函数: Max ...
 - 把已安装的wampserver移动到不同目录使用应注意的问题
			
很多时候需要把已安装的wampserver移动到不同目录使用,此时应注意几个问题: 1.修改D:\wamp64\bin\apache\apache2.4.9\conf目录下的httpd.conf文件( ...
 - 【bzoj5055】膜法师(离散化+树状数组)
			
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=5055 这道题……不得不说,从标题到题面都能看出一股浓浓的膜法气息……苟…… 题意就是统计顺序 ...
 - Spring初学之注解方式配置bean
			
直接看代码: UserController.java package spring.beans.annotation.controller; import org.springframework.be ...
 - alibaba的JSON.toString会把值为null的字段去掉,谨记
			
alibaba的JSON.toString会把值为null的字段去掉,谨记 Map<String,Object> map = new HashMap<>(); map.put( ...
 - SVG_style_script
			
1. <style type="text/css"> <![CDATA[ // ZC: 禁止所有 <text/>元素的选中 text { -webki ...
 - 使用<s:property value="4"/>是报错
			
报错的情况是 在jsp中引入标签 <%@ taglib uri="/struts-tags" prefix="s" %> 项目中也有ognl.jar ...