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())

 

posted @ 2022-03-09 20:13  早安_1207  阅读(76)  评论(0)    收藏  举报
返回顶端