基本数据类型
一 int
num="ob11"
v=int(num,base=2)
print (v)
r=age.bit_length() 该数字二进制用几个字符表示
二 str
v=text.capitalize() 首单词首字符大写其余小些
v=text.casefold()所有变小写,外文也能变
v=text.lower() 变小写,只能英文
v=t.upper() 变大写 .islower(),isupper()是否大小写
.title() 转为变体形式,所有单词首字母都变大写
v=t.center(参数,空白位置填充) 设置宽度并且居中,只能填充单个字符,不写默认空格
.ljust() .rjust() 将字符串放在最左最由,用填充附填充
t.zfill() 默认用0填充到指定宽度
.count("a",2,4) 在串中寻找子序列出现的次数 可设置始终位置
.endswith("x") 结尾,开头,也可设置始终位置
.isalnum() 是否只有字母和数字 返回布尔
.isalpha() 是否都是字母(汉字也认为字母)
.isdecimal()是否全是数字只支持(十进制,最常用),.isdigit() 支持特殊数字,.isnumil()也支持中文一二三
.isdentifier()是否是有效的python标识符,看变量名是否合法
.isprintable() 在打印情况下是否都能显示出来,是否有\t \n
.isspace() 是否全是空格
.istitle()
.find("a",2,6) 从头向后找,找到获取下标,找不到 返回-1
.index() 找不到报错
t="i am {name},age {age}"
v= t.format(name="xxx",age="25") 字符串格式化,
v2=t.format_map({"name":"aaa","age":25}) 传字典
text="asdfggse" 原字符串
m=str.maketrans("aeiou","12345") 创建 替换关系,a--1 e --2
v=text.translate(m) print(v) 替换
.expandtabs() 用yab键断开字符串中的\t,凑成想要的字符长度,不传参代表8个短
“分隔符”.join(字符串) 用分隔符对字符串中的每个元素进行拼接
"分隔符”.join(列表) 会把列表变成字符串分割出来
正则分割字符串
v=t.partition("e") 从左边第一个e分割,能拿到分隔符 .rpartition右边
v=t.split("e",数组 ) .rsplit() 根据e分割,拿不到分隔符,生成的是列表
.splitlines()按换行符分割,true能拿到分隔符,false不拿到分隔符
.replace("aa","bb",2) 用bb把aa替换掉,不加参就是全替换
.swapcase() 大小写互换
列表list
列表可以被修改,内部存储和str不一样,用的是链表,list是有序的
索引 li[3] 切片,for while in not in
删除 del li[1] (索引方式) del li[0:5] 切片方式
修改 li[0] =5 li[1:3] =[100,200]
s= "asdf" li=list(s) str转为列表,["a","s"]
r= str(li) 把列表整体(带中括号)作为字符串输出 列表里不全是字符串时 转为列表 要用for循环
list() 字符串内部使用的是for循环,不能把数字转为列表
li=["a","b"]
v="".join(li) 里面都是str时 可以join方法,输出列表内元素为字符串ab
v=li.append(20) 追加 可以不用v接收
li.clear() 清空
li.remove(元素) 删除指定的值左边优先
li.pop(yuansu) 删除指定的元素,可加索引不加删最后一个 可用v接收删除的值
li=["a","b","c"]
for inx,a in enumerate(li,10) 返回枚举对象, 第一个参数为可迭代对象 列表元组字符串,第二个参数为下标打印出来开始位置
.copu() 浅拷贝
.count(22) 计算元素个数
.extend(["a","b"]) 把每个元素分别追加到后面 对照append作为一个整体追加
.index(22) 找索引,只招一个,也可指定索引
.insert(0,99) 指定位置0插入99
.reverse() 顺序反转
.sort() 从小到大排序 .sort(reverse=True) 大到小
元组tuple
元组是有序的,类似于列表二次加工 一级元素不能被修改删除,但嵌套的二级元素有的能修改删除
tu=(1,2,3,4,5,)
tu.extend(("99","hao"))
"".join(tu) tu.count(55) tu.index(22)
列表字符串元组能互相转换 "".join()方法.内部都是for循环
字典 dict
字典无序,内部存储用的哈希值
v能用任何值,k不能是列表和字典,用布尔值作为k可能会和0,1 重复
索引取值 v=info["k1"] 也支持嵌套索引,不支持切片,因为无序
del info["k"] 删除,支持嵌套删除
不能while循环 无序 支持for循环
for i in info: 等价于 for i in info.keys() 走的是k值
for i in info.values() for k,v in info.items()
dic["k"] dic.keys() dic.values()
clear copy
v= dict.fromkeys("默认为k","v不写默认none") 根据序列创建字典,指定统一的v
v= dic.get("kkk")类似于索引,索引不存在会报错,这个返回none
v=dic.get("fff",123) 不存在返回123
div.items() dic.keys() dic.values()
v=div.pop("k") 根据k删除元素 返回v值
v= dic.pop("kk",90)如找不到 返回90
k,v= dic.popitem() 随机删除一对,返回,v
v=dic.setdefault("k","123") 设置键值对的值,不存在返回新设的值,存在则获取
dic.update({"k1":123,"k2":456}) 更新
dic.update(k1="123",k2="456")
可变类型()修改变量的值 id号不变):列表 字典 可变集合
不可变(修改变量的值id变了):字符串 数字 元组
访问顺序 :
顺序访问:有序的 用下标, str list tuple
映射访问:字典
直接访问 数字
存放元素个数:: 容器类型(可存多个值) list tuple dict
原子类型 (只能一个值) str int
集合set 无序排列的可哈希值,变为集合 去重,利于逻辑运算
不同元素组成,无序,集合中元素必须为不可变类型
定义: 1 s={1,2,3,4}
2 s=set("hello") {"h","e"}
3 s=set(["hello",123]) {"hello",123}
内置方法:
s.add()添加 s.clear()清空 s.pop()随机删除一个 s.remove()指定删除一个,没有就报错,s.discard() 不存在不报错
s.copy()拷贝
集合关系测试
s1.intersection(s2) 求交集 等价于 s1&s2
.union 并集 |
.symmetric_difference() 交叉补集 俩集合加起来 减去交集 ^
.difference_update() 差值更新 s1=s1-s2
intersection_update() 交集赋值
isdisjoint()有无交集
.issuperset() 是不是父集
s1.update(s2)求并集,并赋值给s1
s=forzenset("hello")
print(s) helo