基本数据类型内置方法

  • 字符串的其它内置方法
  • 列表内置方法
  • 字典内置方法
  • 元组内置方法
  • 集合内置方法

详细内容

一、字符串的其它内置方法

因为字符串是所有基本数据类型当中内置方法最多的,所以上次没讲完,今天接着介绍

 1.移除字符串首尾的指定字符,还可以自己选择移除的方向
如:s1 = '$$$jason$$$$$'
print(s1.strip('$'))
    # jason
# 左边:print(s1.lstrip('$'))
      # jason$$$$$
# 右边:print(s1.rstrip('$'))
     # $$$jason
    
 2.大小写的相关操作
如:# s1 = 'JAsOn'
# print(s1.lower())
# 将所有的英文字母变为小写 jason
# print(s1.upper())
# 将所有的英文字母变为大写 JASON
#print(s1.islower())
# 盘点字符串中所有得英文字母是否是小写,结果是布尔值
#print(s1.isupper())
# 盘点字符串中所有得英文字母是否是大写,结果是布尔值

3.判断字符串的开头或者结尾是否是指定的字符
# s1 = 'jason tony tom jerry 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.格式化输出(两种方法)
# 方法一:使用占位符:%s、%d
# 方法二:format>>>:四种玩法
# 玩法1:跟占位符一样,使用{}占位
如:print('my name is {} my age is{}'.format('jason, 18'))
# 玩法2:根据索引取值,可以反复使用
如:print('my name is {0} my age is {1}'.format('jason, 18'))
# 玩法3:根据指名道姓的方式取值
如: print('my name is {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}')

5.拼接字符串
# s1 = '三月不努力,四月变垃圾'
# s2 = '年少不努力,枉为少年人'
# print(s1 + s2) # 如果字符串很大,加号效率很低
# print(s1 * 10)  # 重复次数
# print('|'.join(s1)) #  三|月|不|努|力| |四|月|变|垃|圾
# print('$'.join(['jason','tony','tom'])) # jason$tony$tom
join方法相当于是将括号内的元素进行for循环
而且join的元素必须都是字符串才可以,否则会报错

6.替换字符串中指定的字符
# s1 = 'jason is DSB jason jason'
# 将jason替换成老刘
# print(s1.replace('jason','老刘'))  # 默认一次性替换所有
# 还可以通过数字来控制替换的个数,从左往右
如:# prrint(s1,replace('jason','老刘',2))
# 很多文本编辑器里面的替换功能都可以使用replace完成

7.判断字符串中是否是纯数字
# s1 = 'jason123'
# print(s1.isdigit())  # False
# print('123'.isdigit())  #  True
# print('123.21'.isdigit()) # False
# score = input('score>>>:')
if score.isdigit():
    score = int(score)
else:
    print('NTMD')
    
 # 1.查找指定字符对应的索引值
如:s1 = 'jason justin tony tom'
print(s1.find('s')) 
从左往右查找,找到一个结束
print(s1.find('k',1,9))
-1就是找不到,没有
print(s1.index('k',1,9))
找不到直接报错,不推荐使用
# 2.改变文本位置
如:name = 'tony'
# print(name.center(10,'-'))
---tony----  # 位置居中
# print(name.ljust(10,'*'))
tony******    #位置在前
# print(name.rjust(10,'$'))
$$$$$$tony    # 位置在后
# print(name.zfill(10))
000000tony    # z表示零
# 3.特殊符号:斜杠与一些英文字母的组合会产生特殊的含义
如:print('ja\tson\nke\avin')
# 如果想取消他们的特殊含义可以在字符串的前面加一个字母r
如:prrint(r'ja\tson\nke\avin')
# 4.captalize(首字母大写),swapcase(大小写翻转),title(每个单词的首字母大写)
   # 用法:变量名.captalize(),变量名.swapcase(),变量名.title()
		  

二、列表内置方法

# 1.类型转换
如:print(list(11))
  # 不行
    print(list(11.11))
  # 不行
    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))
    
    # 以上可以看出,list可以转换支持for循环的数据类型,可以被for循环的数据类型有:字符串、列表、字典、元组、集合
    
# 2.常见操作
如:name_list = ['jason','kevin','tony','tom','jerry']
# 2.1索引取值
Print(name_list[0])
Print(name_list[-1])
# 2.2 切片操作
print(name_list[1:4])
# ['kevin','tong','tom']
print(name_list[-4:-1])
# ['kevin','tong','tom']
print(name_list[-1:-4:-1])
# ['jerry', 'tom', 'tony']

# 2.3 间隔
print(name_list[0:4:1])
# ['jason', 'kevin', 'tony', 'tom']
print(name_list[0:4:2])
# ['jason', 'tony']
print(name_list[-1:-4:-1])
# ['jerry', 'tom', 'tony']

# 2.4 统计列表中的元素个数
print(len(name_list))
# 5

# 2.5 成员运算,最小单位是元素不是元素里面的单个字符
如:print('j' in name_list)
	# False
	print('jason' in name_list)  
	# True

 # 2.6 列表添加元素的方式
 # 2.6.1 尾部追加'单个'元素
 如:name_list.append('老刘')
     print(name_list)
  # ['jason','kevin','tony','tom','jerry','老刘']
     name_list.append([11,22,33])
     print(name_list)
  #['jason','kevin','tony','tom','jerry',[11,22,33]]
# 2.6.2 在指定的位置插入单个元素
如:name_list.insert(0,123)
   print(name_list)
    #[123'jason','kevin','tony','tom','jerry']
    name_list.insert(2,'插个队')
    print(name_list)
    # ['jason','kevin', '插个队' 'tony','tom','jerry']
     
  # 2.6.3 合并列表
如:name_list.extend([11,22,33,44,55])
    print(name_list)
    # ['jason','kevin','tony','tom','jerry',11,22,33,44,55]
    # extend其实可以看成是for循环+append
  # 就相当于:for i in [11,22,33,44,55]
   #      name_list.apeend(i)
    #   print(name_list)
 
2.7 删除元素
  2.7.1 通用的删除方式
# del name_list[0]
# print(name_list)
2.7.2 指名道姓的直接删除某个元素
# print(name_list.remove('jerry'))   # None
2.7.3 延迟删除
# print(name_list.pop())  默认是尾部弹出
  print(name_list)
    # jerry
# print(name_list.pop(2))  可以指定索引值
  print(name_list)
    # tony
    
 2.8 修改列表元素
# print(id(name_list[0]))  # 2614038082368
# name_list[0] = 'jasonDSB'
# print(id(name_list[0]))  # 2614038926320
# print(name_list)

2.9 排序
如:ss = [44,77,99,11,22,33,88,66]
   ss.sort()    默认是升序
    # [11,22,33,44,66,77,88,99]  
    # ss.sort(reverse=True)   可以修改为降序
    print(ss)
    # [99,88,77,66,44,33,22,11]
    
2.90 翻转
# ss = [44,77,99,11,22,33,88,66]
# ss.reverse()  # 前后颠倒
# print(ss)
# [66,88,33,22,11,99,77,44]
 
 2.91 比较运算
# s1 = [11,22,33]
# s2 = [1,2,3,4,5,6,7,8]
# print(s1 > s2)
# True
列表在做比较的时候,其实比的是对索引位置上的元素
如:s1 = ['A','B','C']  假设A>>>65
    s2 = ['a']    假设a>>>97
    # print(s1 > s2)
    # Fslse
  ss = [44,77,99,11,22,33,88,66]
  print(ss.index(99))
    # 表示的是99这个数在列表中所处的索引位置
    
 2.92 统计列表中某个元素出现的次数
l1 = [11,22,33,44,33,22,11,22,11,22,33,22,33,44,55,44,33]
# print(l1.count(11))  # 统计元素11出现的次数
# 3
l1.clear()   # 清空列表
   

可变类型与不可变类型

# s1 = '$$$jason$$$'
# print(s1.strip('$'))
# jason  本身并没有修改,是产生了新的结果
# print(s1)
# $$$jason$$$

# s2 = [1,2,3]
# print(s2.extend([11,22,33,44,55]))
# None 空   显示不出来
# print(s2)
# [1,2,3,11,22,33,44,55]
'''
可变类型(列表):值改变,内存地址不变,修改的是本身
不可变类型(字符串):值改变,内存地址肯定变,修改过程产生了新的值
'''
# 如何查看变量的内存地址
# s2 = [1,2,3]
# print(id(s2))  # 2171184953160
# s2.append(11111111)
# print(id(s2))  # 2171184953160

# s1 = 'jason'
# print(idd(s1))
# res = s1.strip()
# print(res)
# print(s1,id(s1))

三、队列与堆栈

队列:先进先出,比如:超市排队结账,先来先走,符合队列的特征

堆栈:先进后出,比如:叠衣服,在按顺序放的时候,最先放的肯定在最下面,拿的时候最后拿出来,符合堆栈的特征。

# 使用列表模拟出队列与堆栈的特征
 # 队列
# 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())