Python基础篇(6)---数据类型的内置方法
本章内容
• 字符串的内置方法
• 列表的内置方法
• 可变类型和不可变类型
• 队列和堆栈
字符串的内置方法
1.strip---移除字符串首尾的制定字符,可以选择方向
s1 = '$$$jason$$$' print(s1.strip('$')) # jason print(s1.lstrip('$')) # jason$$$ left 左边 print(s1.rstrip('$')) # $$$jason right 右边

2.lower和upper---大小写相关操作
s2 = 'JaSoN666Sb' print(s2.lower()) # 将所有的英文字母变为小写 jason666sb print(s2.upper()) # 将所有的英文字母变为大写 JASON666SB print(s2.islower()) # 判断字符串中所有的英文字母是否是纯小写 结果是布尔值 print(s2.isupper()) # 判断字符串中所有的英文字母是否是纯大写 结果是布尔值

3.startswith和endswith---判断字符串的开头或结尾是否是制定的字符
s3 = 'jason kevin jason tony 666' print(s3.startswith('j')) # True print(s3.startswith('jason')) # True print(s3.startswith('tony')) # False print(s3.endswith('6')) # True print(s3.endswith('666')) # True print(s3.endswith('jason')) # False

4.format---格式化输出
# 方法1:跟%s %d 一样占位,使用{}占位 # 案例: print('my name is {} my age is {}'.format('jason', 18)) # 方法2: 根据索引取值,可以反复使用 # 案例: print('my name is {0} {0} {0} my age is {0} {1}'.format('jason', 18)) # 方法3: 根据指名道姓的方法取值 # 案例: print('my name is {name} {name} my age is {age} {pwd}'.format(name='jason', age=18, pwd=123)) # 方法4: 直接使用已经出现过的变量 # 案例: name = 'jason' age = 18 print(f'my name is {name} my age is {age} {name} {age}')

5.join---拼接字符串
s1 = "123" s2 = "456" print(s1+s2) # 结果 "123456" ''' 如果字符串很大 加号效率较低 ''' print(s1 * 10) # 重复次数 print("|".join(s1)) # 1|2|3 print('|'.join(['1','2','3','4'])) # 1|2|3|4 ''' join的元素必须都是字符串才可以 否则报错 '''

6.replace---替换字符串中指定的字符
s6 = 'jason is DSB DSB DSB DSB jason jason jason' #将DSB替换成 DMN # 一次性替换所有 print(s6.replace('DSB', 'DMN')) # 通过数字控制替换的个数 从左往右 print(s6.replace('DSB', 'DMN',2)) '''很多文本编辑器里面的替换功能 就可以使用replace完成'''

7.isdigit---判断字符串中是否是纯数字
print('jason123'.isdigit()) # False print('123'.isdigit()) # True print('123.21'.isdigit()) #False

了解的操作
1.find---查找指定字符对应的索引值
s1 = 'jason justin kevin tony' print(s1.find('s')) # 从左往右查找 查找一个就结束 print(s1.find('k', 1, 9)) # -1 意思是没有 找不到 print(s1.index('s')) print(s1.index('k', 1, 9)) # 找不到直接报错 不推荐使用

2.center和ljust和rjust和zfill---改变文本位置
name = 'tony'
print(name.center(30, '-')) # -------------tony------------- 30数字代表字符的位数,center 把文本放在中间,其他空的用-填充 print(name.ljust(30, '*')) # tony************************** ljust 把文本放在左边 print(name.rjust(30, '$')) # $$$$$$$$$$$$$$$$$$$$$$$$$$tony rjust 把文本放在右边 print(name.zfill(50)) # zero 零 0000000000000000000000000000000000000000000000tony zfill zero 用0填充在文本前面

3.r---取消特殊符号斜杠和英文字母组合产生的特色含义
print('ja\tson\nke\avin') ''' \t表示空四个字符,也称缩进,相当于按一下Tab键 \n 表示换行 \a 表示响铃 ''' '''如果想取消它们的特殊含义 可以在字符串的前面加一个字母r''' print(r'ja\tson\nke\avin')

4.captalize,swapcase,title---首字母大写,大小写反转,每个单词首字母大写
a = "hello world " print(a.capitalize()) # 首字母大写 b = "Hello World" print(b.swapcase()) # 大写变小写,小写变大写 c = "dear my friend i miss you very much" print(c.title()) # 每个单词首字母变成大写

列表的内置方法
1.类型转换
""" list可以转换支持for循环的数据类型 可以被for循环的数据类型:字符串 列表 字典 元组 集合 """ # 整形,浮点型和布尔型不行会报错 print(list(11)) # 报错 print(list(11.11)) # 报错 print(list(True)) # 报错 # 字符串 列表 字典 元组 集合 print(list('jason')) # ['j', 'a', 's', 'o', 'n'] print(list({'name': 'jason', 'pwd': 123})) # ['name', 'pwd'] print(list((11,22,33,44,55))) # [11, 22, 33, 44, 55] print(list({1, 2, 3, 4, 5})) # [1, 2, 3, 4, 5] print(list(True))

2.索引取值
name = ['jason', 'kevin', 'Tom'] print(name[0]) # jason 取列表的第一个元素 print(name[-1]) # Tom 取列表的最后一个元素

3.切片操作
name = ['jason', 'kevin', 'Tom','Alice'] print(name[0:2]) # ['jason', 'kevin'] 取列表第一位到第二位元素组成列表 print(name[-3:-1]) # ['kevin', 'Tom'] 从倒数第三个元素取到倒数第二个元素 print(name[-1:-3:-1]) # ['Alice', 'Tom'] 从最后一个元素开始往左取2个元素

4.间隔
name = ['jason', 'kevin', 'Tom','Alice'] print(name[0:4:2]) # ['jason', 'Tom'] 从第一个元素开始往右间隔一个元素去一个 到第三个元素停止

5.len---统计列表中元素的个数
name = ['jason', 'kevin', 'Tom','Alice'] print(len(name)) # 打印出列表中含有的元素个数

6.in---成员运算 最小判断单位是元素不是元素里面的单个字符
name = ['jason', 'kevin', 'Tom','Alice'] print('j' in name) # False j是列表元素jason里的字符,不是最小单位 print('Alice' in name) # True Alice是最小单位,且存在于列表name中

7.append,extend,insert----列表添加元素的方式
name = ['jason', 'kevin', 'Tom','Alice'] # 1.尾部追加'单个'元素 name.append('Justin') # 在列表的尾部添加一个元素 print(name) # ['jason', 'kevin', 'Tom', 'Alice', 'Justin'] # 2.指定位置插入'单个'元素 name.insert(0, 123) # 在列表第一个元素前插入一个123 name.insert(2,'插队!!!') # 在列表第3个元素前插入 print(name) # 3.合并列表 name.extend([11,22,33,44]) # 在原有的列表后添加合并列表的元素 print(name) '''extend其实可以看成是for循环+append''' for i in [11, 22, 33, 44, 55]: name_list.append(i) print(name_list) name_list += [11, 22, 33, 44, 55] print(name_list) # 加号的效率不高

8.del,pop,remove---删除元素
name = ['jason', 'kevin', 'Tom','Justin','Alice'] # 通用的删除方式del del name[0] # 删除name列表的第一个元素 print(name) # 就地删除 name.remove('kevin') # 删除Kevin这个元素 print(name) # 延迟删除 name.pop() # 默认弹出尾部的元素Alice print(name) name.pop(1) # 指定弹出的元素 print(name)

9.修改列表元素
name = ['jason', 'kevin', 'Tom','Justin','Alice'] print(id(name)) # 打印name列表的内存地址 name[0] = 'jason123' # 修改第一个元素为jason123 print(name) # 打印修改后的列表 print(id(name)) # 打印修改后的列表的内存地址 ''' 修改元素后的列表的内存地址并没有变化 '''

10.sort---排序
ss = [44, 77, 99, 11, 22, 33, 88, 66] ss.sort() # 默认是升序 print(ss) # [11, 22, 33, 44, 66, 77, 88, 99] ss.sort(reverse=True) # 可以修改尾降序 print(ss) # [99, 88, 77, 66, 44, 33, 22, 11]

11.reverse---翻转
ss = [44, 77, 99, 11, 22, 33, 88, 66] ss.reverse() # 前后颠倒 print(ss)

12.比较运算
s1 = [11, 22, 33] s2 = [1, 2, 3, 4, 5, 6, 7, 8] print(s1 > s2) # True # 比较第一个元素,11大于1 不比后面的元素 """列表在做比较的时候 其实比的是对应索引位置上的元素""" s1 = ['A', 'B', 'C'] # A>>>65 A的编码转换为数字为65 s2 = ['a'] # a>>>97 a的编码转换成数字为97 print(s1 > s2) # False 65小于97

13.count---统计列表中某个元素出现的次数
l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33] print(l1.count(11)) # 统计元素11出现的次数

14.clear---清空列表
l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33] l1.clear() print(l1) # 结果为[]
可变类型 ,值改变,内存地址不变, 修改的是本身。
a = [1,2,3,4,5] print(id(a)) # 2352449337224 a[0]=6 print(id(a)) # 2352449337224
修改前

修改后

不可变型,值改变 内存地址肯定遍 修改过程产生了新的值。
s1 = ' TOM ' print(id(s1)) # 2328859215152 res=s1.strip() print(id(res)) # 2328858374864
修改前

修改后

队列:先进先出 ,例如超市排队结账。
示意:

new_list = [] # 先进 new_list.append(111) new_list.append(222) new_list.append(333) # 先出 for i in new_list: print(i) print(new_list.pop(0)) print(new_list.pop(0)) print(new_list.pop(0))

堆栈:先进后出,例如叠衣服。
示意图:

new_list = [] # 先进 new_list.append(111) new_list.append(222) new_list.append(333) # 后出 print(new_list.pop()) print(new_list.pop()) print(new_list.pop())


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号