萌小帅 一路向前

要有朴素的生活和遥远的梦想,不管明天天寒地冻,路遥马亡...^-^...

python之字符串、字典手册

Contents

  •  字符串操作
  • 字典操作

字符串操作 

 字符串相关的操作比较多,主要可以分为以下12个大类:

  • 首字母大写、变title
  • 字符串大小写转换
  • 字符统计
  • 字符索引
  • 字符替换
  • 字符左侧、右侧添加某字符
  • 字符左侧右侧删除空格 回车
  • 编码与解码
  • tab键的延长
  • 字符判断
  • 字符连接
  • 字符拆分
 1 s = ' Hello world'
 2 ss = '你好'
 3 # 1. 首字母大写   变为title的格式
 4 s1 = s.capitalize()     # 不会对s进行更改,需要重新赋值--  使得首字母大写
 5 s24 = s.title()  # 该大写的单词的首字母都大写
 6 
 7 # 2. 字符统计
 8 s_l_num = s.count('l')    # 统计字符串中 某个字符的个数
 9 s_l_num_1 = s.count('l', 3, 9)   # 统计字符串的起始位置的设置,也是顾首不顾尾
10 
11 # 3. 在制定字符左侧,右侧添加某种字符
12 s2 = s.center(50, '*')    # 显示50个字符,将s放置在中间,其余用*来表示
13 s13 = s.ljust(50, '*')    # left 左侧为s字符,不足50 全部补*
14 s14 = s.rjust(50, '*')    # right 右侧为s字符,不足左侧补*
15 s25 = s.zfill(30)   # 不足30个左侧补0 ,如果字符串本身字符数大于30 则打印全部字符串
16 
17 # 4. 字符的编码与解码
18 # s3 = s.encode('utf8')
19 # s4 = ss.encode('gb2312')
20 # s5 = s3.decode('gbk')
21 # s6 = s4.decode('gb18030')
22 
23 # 5. 将tab延长
24 s7 = s.expandtabs(tabsize=30)    # 延长字符串中\t的长度,  如果字符串中没有\t(tab)将不会有任何改变
25 sss = '\thello pyhton'
26 s8 = sss.expandtabs(tabsize=30)
27 
28 # 6.查找某种字符的索引
29 s_index = s.find('l')   # 查找字符串中,第一个'l'的位置
30 s_index_1 = s.find('3')    # 如果字符串汇总没有该字符,则返回-1 不会报错
31 s_index_2 = s.rfind('l')   # 从右侧开始查找   默认就是从左侧找,所以没有.lfind
32
33 sx = 'www.monologuesmw@163.com'
34 # 7. 对字符串进行各种判断,返回bool类型   结尾字符、数字、英文、十进制数、整数、合法字符、全小写、空格、标题、可打印
35 s_b = s.endswith('d')   # 判断字符串是否是以d结尾  返回true/false bool类型
36 s_b1 = sx.endswith('.com', -4)   # 判断最后4个字符是不是以 .com 结尾
37 s_bool = s.isalnum()   # 判断字符串是否为全阿拉伯数字,是否有非法字符
38 s_bool1 = s.isalpha()  # 判断字符串是否为全英文,空格也不行
39 s_bool2 = s.isdecimal()  # 判断是否是十进制的数
40 s_bool3 = s.isdigit()  # 判断是否是整数
41 s_bool4 = s.isidentifier()   # 判断是否是合法的标识符  变量名
42 s_bool5 = s.islower()   # 判断是否全是小写
43 s_bool6 = s.isnumeric   # 判断是否全是数字,小数点也不行
44 s_bool7 = s.isspace()  # 判断是不是空格(纯空格)
45 s_bool8 = s.istitle()    # 判断是不是标题  即所有该大写的单词首字母都大写
46 s_bool9 = s.isprintable()   # 判断是否可以打印
47 
48 # 8. 字符连接
49 s9 = '+'.join(['1', '2', '3'])   # 1+2+3
50 s10 = '+'.join('123')   # 1+2+3
51 s11 = ''.join(['a', 'b', 'c'])  # abc
52 s12 = ' '.join(['a', 'b', 'c'])  # a b c
53 
54 # 9. 字符变大小写
55 s15 = s.lower()  # 全部变小写
56 s16 = s.upper()  # 全部变大写
57 
58 # 10. 删除字符左右两侧的空格 回车
59 s17 = s.lstrip()  # 左侧去掉空格和回车
60 s18 = s.rsplit()  # 右侧去掉空格和回车
61 s19 = s.strip()   # 左右两侧的空格和回车全部去掉
62 
63 # 11. 字符替换
64 s20 = s.replace('l', 'L')  # 将所有的'l' 变为 'L'
65 s21 = s.replace('q', 'Q')   # 如果要替换的字符不存在,不会报错
66 
67 # 12. 字符拆分
68 s22 = s.split()   # 将字符串分割为列表 默认按空格分
69 s23 = s.splitlines()  # 按换行符分割为列表

 

字典操作

 字典也是一种无序的数据类型,没有下表索引,但又键,可以通过键获取值。  { }

  • 键不能重复,也不能修改
  • 值可以重复
  • 列表是一种可更改的数据类型,其不能作为键。
  • 删除删键

就像现实中的字典一样,键表示页数,而值表示该页的内容。 那么,页数是不能重复的,否则难以查询; 多音字时,值是可以重复的; 删除时应直接撕下那一页,即删除删键。

 其方法可以总结为6大类:

 1 dic = {1:'bob', 2:'Iris', '3': 'literature','4': '哈利'}
 2 # 1. 删除与清空
 3 dic.pop('3')   # 删除删键 方式1  --1
 4 del dic[1]    # 删除 方式2
 5 aa = dic.popitem()   # 随机返回一个键值对,同时在原dic中删除该键值对, 字典为空时,会抛异常
 6 print(aa)
 7 dic.clear()   # 直接清空       --2
 8 # 2. 复制
 9 dic1 = dic.copy()  # 该复制与列表的复制相同--3
10 dic.update({1:'python'})  # 添加--4
11 print(dic, dic1)
12 
13 # 3.字典转列表
14 ite_dic = dic.items()    # 字典转列表,列表内元组  --5
15 print(ite_dic)
16 
17 # 4. 获取键。 值。 并通过键安全的获取值
18 key_dic = dic.keys()   # 获取键  --6
19 val_dic = dic.values()  # 获取值  --7
20 print(len(key_dic))
21 print(val_dic)
22 val_dic1 = dic.get(2)   # 通过键 获取值  安全   没有该键时 返回none 不会报错 --8
23 print(val_dic1)
24 
25 # 5. 初始化新姿势
26 dic2 = dic.fromkeys(['a', 'b', 'c'], '0')  # 初始化的一种方式 --9
27 print(dic2)
28 
29 # 6. 更新新姿势  字典中原先包含该键,则值不会发生更改;若不包含改键,则新增该键值对
30 D = {'Name': 'Runoob', 'Age': 7}
31 print("Age 键的值为 : %s" % D.setdefault('Age', '25'))  # 键存在在字典中则不会设置为指定值  --10
32 print("Sex 键的值为 : %s" % D.setdefault('Sex', 'NA'))  # 键不存在,指定一个值
33 print("School 键的值为 : %s" % D.setdefault('School'))  # 键不存在,不指定值,默认为None
34 print("新字典为:", D)

 

P.S.  虽然初始化时,列表是[ ], 字典是{ }, 元组是(),字符串是 ‘ ’, 但在进行索引时都是 [ ] 。 

 

posted on 2018-11-15 21:36  墨殇浅尘  阅读(394)  评论(0编辑  收藏  举报

导航