一、整型方法:
整型是不可迭代对象,如果列表里有数字,不能用join方法
1. int():将字符串类型转换成数字类型,可以加进制参数base
num = '0011'
v = int(num,base=2) # 以二进制的形式读取,转换成十进制
print(v) # 3
num1 = 'a'
v1 = int(num1,base=16) # 以十六进制的形式读取,转换成十进制
print(v1)
2. bit_lengh():返回当前数字的二进制最小位数
age = 5 # 0101
r = age.bit_length()
print(r) # 3
二、字符串方法:
字符串不能修改,要用一个新的变量赋值
- test.capitalize():首字母大写
- test.lower() # 所有字符变小写
- test.islower()
- test.upper()
- test.isupper()
- test.casefold() # 高级版lower(),对某些特殊字符大小写都有效
- test.swapcase() # 大小写切换
- test.center(20,"*") # 设置宽度,并将内容居中,第一个参数是总长度,第二个是填充的一个字符
- test.count('ex',5,6) # 寻找子序列的出现次数,从第5个开始找,到第6个结束
- test.expandtabs(6) # 把字符串按6个6个区分,遇到\t用空格凑够6个
![]()
test = "12345678\t9"
v = test.expandtabs(6)
print(v,len(v))
test1 = 'username\temail\tpassword\nxxx\txxx#qq.com\t123\nxxx\txxx#qq.com\t123\nxxx\txxx#qq.com\t123\n'
print(test1)
print(test1.expandtabs(10))
View Code
- test.find('ex',5,7) # 从头往后找,找到第一个停止,返回位置,未找到返回-1
- test.index('8') # 找不到,报错
- test.format(name='alex',a=19) # 格式化,将一个字符串中的占位符替换为指定的值
![]()
test = 'i am {name}, age {a}'
print(test)
v2 = test.format(name='alex',a = 7)
print(v2)
v3 = test.format_map({"name": 'alex',"a": 19})
print(v3)
test = 'i am {0}, age {1}'
v1 = test.format('df',10)
print(v1)
View Code
- test.isalnum()
- test.isalpha()
- test.isdecimal() # 十进制数
- test.isdigit() # 支持特殊格式的数字
- test.isnumeric() # 支持中文‘二’
- test.isidentifier() # 判断是否标识符(字母,数字,下划线),返回布尔值
- test.isprintable() # 判断是否存在不可显示的符号,包含返回false,例:\n,\t
b = 'afakfk\n'
print(b.isprintable())
- test.space() # 是否全为空格
- test.istitle()
- test.title()
- test.join()
test = '你是风儿我是沙'
print(test)
t = ' '
print(t.join(test))
- test.ljust(20,'*') # 右边填充*
- test.rjust(20,'*') # 左边填充*
- test.zfill(20) # 左边填充0
- test.lstrip() # 带参数的暂时没搞懂
- test.rstrip()
- test.strip()
- test.maketrans()
test = '你是风儿我是沙'
test1 = '去你妈的风和沙'
m = str.maketrans(test,test1)
v = 'fadfsadf你dfsd是df风fdfsa儿fsdf我fadsf是sdfa沙'
print(v.translate(m))
- test.translate()
- test.partition()
- test.rpartition()
test = 'fahjkdfhdkjhas'
v = test.rpartition('h') # 元祖,('fahjkdf', 'h', 'dkjas')
print(v)
- test.split()
v = test.split('h',2) # 列表,第二个参数代表按几个元素从左到右分割
print(v)
- test.rsplit()
- test.splitlines() # 按换行符分割,如果参数为True,元素保留换行符
- test.startswith('ex')
- test.endswith('ex')
- test.replace()
test = 'alexalexalex'
print(test.replace('ex','bbb'))
print(test.replace('ex','bbb',1))
print(test.replace('ex','bbb',2))
- encode和decode:日后再说
三、列表方法:
列表可以修改,直接在元列表进行操作即可
- del(li)
- li.append()
- li.clear()
- li.copy() # 浅拷贝
- li.count()
- li.extend(iterable) # 把传进去的可迭代对象当做列表的元素加入到列表尾部,append是把可迭代对象当做一个整体加入
- li.index() # 根据值找第一个结果的索引,可设置起始位置和结束位置
- li.insert(0,99) # 第一个参数是索引值,第二个参数是要插入的内容
- li.pop(index=None)
- li.remove(value) # 删除一个结果
- li.reverse()
- li.sort(reverse=False) # 排序,当reverse=True时,从小到大排
四、元祖方法:
元祖的一级元素不可修改,但二级元素可以修改
- tu.count()
- tu.index()
五、字典方法:
字典和列表不能用作字典的key
del info['k1'] # 删除一个键值对
for item in info:
print(item) # 打印key
for item in info.keys():
print(item) # 打印key
for item in info.values():
print(item) # 打印value
for item in info.keys():
print(item,info[item]) # 打印key和value
for k,v in info.items():
print(k,v) # 打印key和value
key in dic
value in dic.values()
- dic.clear()
- dic.copy()
- dict.fromkeys(iterable,value) # 有静态方法@staticmethod加持,直接使用类名调用;字典初始化
- dic.get('k1','无此值') # 不报错
- dic.pop(key,90) # 当无法移除时(key不存在),返回第二个参数的值90
- dic.popitem() # 随机删除,返回元祖形式的键值对
- dic.setdefault('key','123') # 如果k1存在,则返回k1的值,如果不存在,设置新的键值对并返回
- dic.update({'k1':123,'k2':456}) # 已经存在的key,覆盖;不存在的key,创建新键值对
- dic.update({k1=123,k2=456}) # 另一种写法,python自动做转换,**kwargs
六、集合方法:
交集:set1.intersection(set2) # set1&set2
并集:set1.union(set2) # tet1|set2
差集:set1.difference(set2) # set1有set2没有的元素,set1-set2
子集:set1.issubset(set2) # 判断set1是否为set2的子集,set1 <= set2
父集:set1.issuperset(set2) # 判断set1是否为set2的父集,set1 >= set2
对称差集:set1.symmetric_difference(set2) # 2个set没有重合的元素,set1^set2
set1.isdisjoint(set2) # 判断是否有交集,没有则返回True
set1 = set(iterabel) # 定义一个集合
set1 = frozenset(iterable) # 定义一个不可变集合
set1.add(‘x’)
set1.update([a,b,c]) # 更新多值
set1.clear()
set1.remove(‘H’)
set1.copy() # 浅拷贝
set1.pop() # 随机删除
set1.remove('s')# 指定删除,不存在会报错
set1.discard(‘x’) # 不报错删除,返回None
set1.defference_update(set2) # 求差集后更新,set1 = set1 - set2
set1.intersection_update(set2)
set1.symmetric_difference_update(set2)
set1.isdisjoint(set2) # 没有交集返回True
len(set1)
x in set1
x not in set1