python学习笔记-(五)字符串&字典
1.字符串操作
>>> name = ("my name is cc")#首字母大写
>>> print(name.capitalize())
My name is cc >>> print(name.count('c'))#统计'c'的个数
2 >>>print(name.center(50,"-"))#输出50个字符,名字居中,两边补齐--
------------------my name is cc------------------- >>> print(name.endswith("-"))#判断是否以"-"结尾
False >>> name = ("my name is\t cc")
>>> print(name.expandtabs())#把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。
my name is cc >>> print(name.isdigit())#判断是否为整数
False >>> name = ("my")
>>> print(name.isidentifier())#判断是不是一个合法的标识符
True
>>> name = ('2my')
>>> print(name.isidentifier())
False >>> name = ("my")
>>> print(name.islower())#是不是小写字符
True >>> name = ("my")
>>> print(name.isnumeric())#判断是不是纯数字
False >>> name = ("my")
>>> print(name.isspace()) #判断是不是空格
False >>> name = ("My Name Is")
>>> print(name.istitle())#判断是不是title(首字母都大写)
True >>> name = ('MY')
>>> print(name.isupper())#判断是否全是大写
True join() 拼接字符串,可指定拼接字符串,如:+
>>> name = ('cc','mm','nn')
>>> print('+'.join(name))
cc+mm+nn >>> name = ('cc')
>>> print(name.ljust(50,'*'))#输出50个字符,cc放在最左边,右边以*补齐
cc************************************************ >>> name = ('cc')
>>> print(name.rjust(50,'*'))#输出50个字符,cc放在最右边,左边以*补齐
************************************************cc >>> name = ('MY')
>>> print(name.lower()) #小写
my >>> name = ('my')
>>> print(name.upper()) #大写
MY >>> name = (' yy ')
>>> print(name.strip())#自动去掉左右的回车和空格
yy
>>> print(name.lstrip())#自动去掉左边的空格和回车
yy
>>> print(name.rstrip())#自动去掉右边的空格和回车
yy maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
注:两个字符串的长度必须相同,为一一对应的关系。
>>> a='Hello!World!'
>>> t = a.maketrans('l','a')
>>> print(a.translate(t))
Heaao!Worad! >>> name = "cc is uu"
>>> print(name.replace("c","L",1))#替换,1代表替换几次
Lc is uu (translate是字符的一一映射. 每个字符只要出现都会被替换为对应的字符.
replace是字符串替换, 字符串完整出现后被整体替换.replace的两个字符串参数长度可以不同.) >>> name = 'ccisuu'
>>> print(name.rfind("u"))#从左往右找到最右边满足条件的下标并返回
5 >>> name = ('cc,nn')
>>> print(name.split(','))#分割字符串,默认用空格分割
['cc', 'nn'] >>> name = ('cc\nuu')
>>> print(name.splitlines())按照换行分割
['cc', 'uu'] >>> name = 'cc'
>>> print(name.swapcase())#大小写转换
CC
2.字典
字典是无序的,是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
2.1 取出元素
>>> dict = {'name':'cc','age':18}
>>> print(dict['name'])
cc >>> dict = {'name':'cc','age':18}
>>> print(dict.get('age'))
18
2.2 修改字典
>>> dict = {'name':'cc','age':18}
>>> dict['name'] = 'dd'#元素替换,若存在则修改
>>> print(dict)
{'name': 'dd', 'age': 18}
>>> dict['sale'] = 'boy'#若不存在则新增
>>> print(dict)
{'age': 18, 'name': 'cc', 'sale': 'boy'}
2.2 删除字典元素
>>> dict = {'name':'cc','age':18}
>>> del dict['name']#删除键是name的值
>>> print(dict)
{'age': 18} >>> dict.pop('age')#删除键是age的值
>>> print(dict)
{'name': 'cc'} >>> dict.popitem()#随机删除:字典本身是无序的
>>> print(dict)
{'age': 18}或{'name','cc'} >>> dict.clear()#清空词典所有条目
>>> print(dict)
{} >>> del dict#删除字典
>>> print(dict)
2.3 多级字典嵌套及操作
>>> user = {
"seller":{
"user1":"cc",
"user2":"uu",
"user3":"tt"
},
"buyer":{
"tel1":101,
"tel2":102,
"tel3":103
}
}
>>> print(user)
{'buyer': {'tel2': 102, 'tel1': 101, 'tel3': 103}, 'seller': {'user2': 'uu', 'user1': 'cc', 'user3': 'tt'}}
2.4 字典循环
#方法一:建议用这种方法
>>> info = {"name":"cc","age":18}
>>> for i in info:
>>> print(i,info[i])
name cc
age 18 #方法二:
>>> info = {"name":"cc","age":18}#会先把dict转成list,数据里大时莫用
>>> for k,v in info.items():
>>> print(k,v)
name cc
age 18
2.5 其他
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
#values
>>> info.values()#取出字典的value
dict_values(['LongZe Luola', 'XiaoZe Maliya']) #keys
>>> info.keys()#取出字典的key
dict_keys(['stu1102', 'stu1103']) #setdefault如果键在字典中,返回这个键所对应的值。如果键不在字典中,向字典中插入这个键,并且以default为这个键的值,并返回default。default的默认值为None
>>> info.setdefault("stu1106","Alex")
'Alex'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
>>> info.setdefault("stu1102","龙泽萝拉")
'LongZe Luola'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #update 合并,有相同的值就替换;没有就新增
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
>>> b = {1:2,3:4, "stu1102":"龙泽萝拉"}
>>> info.update(b)
>>> info
{'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #items 字段转换成列表
info.items()
dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')]) #通过一个列表生成默认dict,初始化一个字典,共享一个内存地址
>>> dict.fromkeys([1,2,3],'testd')
{1: 'testd', 2: 'testd', 3: 'testd'}
python学习笔记-(五)字符串&字典的更多相关文章
- 【python学习笔记】4.字典:当索引不好用时
[python学习笔记]4.字典:当索引不好用时 字典是python中唯一内建的map类型 创建: key可以为任何不可改变的类型,包括内置类型,或者元组,字符串 通过大括号: phonebook={ ...
- python学习笔记6(字典)
映射:键值对的关系,键(key)映射值(value) 字典是Python唯一的映射类型 >>> phonebook = {'} >>> phonebook {'} ...
- python学习笔记之三:字典,当索引不好用时
字典是python中唯一内建的映射类型.字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里.键可以是数字,字符串甚至是元组. 1. 创建和使用字典 字典可以通过下面的方式创建: phon ...
- python学习笔记五--文件
任何情况下文本文件在Python里均是字符串模式. 一.创建一个文件,并写入: 函数open(文件名,w) 二.打开一个文件,并读取: 函数open(文件名,r),“r”是默认值,可以不用写 三.使用 ...
- Python学习笔记五:字符串常用操作,字典,三级菜单实例
字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count(“x”) 输出字符, ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- python学习笔记五 模块上(基础篇)
模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...
- python学习笔记(三)、字典
字典是一种映射类型的数据类型.辣么什么是映射呢?如果看过<数据结构与算法>这一本书的小伙伴应该有印象(我也只是大学学习过,嘻嘻). 映射:就是将两个集合一 一对应起来,通过集合a的值,集合 ...
- python学习笔记(五):装饰器、生成器、内置函数、json
一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...
- python学习笔记五 模块下(基础篇)
shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...
随机推荐
- vijos P1009清帝之惑之康熙
</pre>背景康熙是中国历史乃至世界历史中最伟大的帝王之一,清除螯拜,撤除三藩,统一台湾,平定准葛尔叛乱:与此同时,出众的他也被世界各国遣清使臣所折服.康熙是历史上少有的全人,不仅文武兼 ...
- void与void之间没有隐式转换(纯属恶搞,请勿在意)
强大的vs弹出了这个提示:.有没有觉得强大的vs不应该出现该提示. 但就是出现了. 看客,您知道怎么让vs弹出这个提示吗^~^
- 怎样设置Word下次打开时跳转到上次阅读的位置
①我们启动Word2013,打开需要阅读的文档,当阅读完毕之后,在指定位置键入一个空格,然后按下Delete键删除,这样相当于是没有作任何更改. ②保存文档,单击文件--另存为,选择好路径,将文档保存 ...
- 把php上传sae问题要使用IO
应用移植指南 一,为什么要移植应用 SAE禁止IO写操作,代码目录不能写入.这意味着普通程序的上传图片.生成缓存等操作都不能在SAE上正常运行,这时候你需要对这些代码进行修改后才能让你的程序运行在SA ...
- ListView上拉加载,下拉刷新 PullToRefresh的使用
PullToRefresh是一套实现非常好的下拉刷新库,它支持:ListViewExpandableListViewGridViewWebViewScrollViewHorizontalScrollV ...
- 【BZOJ 4600】【SDOI 2016】硬币游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=4600 转化成nim游戏 因为对于每一个反面朝上的硬币编号可以拆成\(2^a3^bc\),选择这个硬币 ...
- Entity Framework Code First (八)迁移 Migrations
创建初始模型和数据库 在开始使用迁移(Migrations)之前,我们需要一个 Project 和一个 Code First Model, 对于本文将使用典型的 Blog 和 Post 模型 创建一个 ...
- lucene-Field.Store解析
本文主要内容装载这里 Store 三种形态 COMPRESS:压缩保存.用于长文本或二进制数据 (后期高版本舍弃了) YES:保存 NO:不保存 具体案例 package demo.first; im ...
- javascript中数组去重的4种方法
面试前端必须准备的一道问题:怎样去掉Javascript的Array的重复项.在最近面试中,百度.腾讯.盛大等都在面试里出过这个题目.这个问题看起来简单,但其实暗藏杀机. 考的不仅仅是实现这个功能,更 ...
- C语言与套接字
我们已经知道如何使用I/O与文件通信,还知道了如何让同一计算机上的两个进程进行通信,这篇文章将创建具有服务器和客户端功能的程序 互联网中大部分的底层网络代码都是用C语言写的. 网络程序通常有两部分组成 ...