1.int和bool
输出i的最大二进制位数
int
i = 1000
print(i.bit_length())
2. str int bool list set dict tuple 相互转换
print(str(bool)) <class 'bool'>
bool(int//str/list/dic/set)空则为Flase有则为True
set(list),tuple(list),str>list str.split('*'),list>str '*'.join(str)(注:用'*'来补充字符串)
list(set/tuple/dict)(注:字典是键)
set/tuple(dict)(注:返回的是键,set()是随机排序,tuple()是固定顺序)
(注:list()tuple()set() 转换()中为可迭代对象 int和bool会报错)
3.字符串(没有增删 只有改查 和拼接 和数乘)
字符串(顾头不顾尾):
1)切割str[ ](【 】中一定不能为空)
下标索引,切割,正切,正切加步长,反切(注:一定要加步长)。
例:str【2】 str[ : ] str[ : 5] str[-5:-1 ] str[-1:-5:-1] str[-1::-1]
(注str[-1:-5]会为空取不出东西)
常用方法(注意括号)
str.upper() str.capitalize() str.title() str.lower() str.center() str.swapcase() tr.strip() str.slipt() '@'.join(iterable) str.isdigit()
str.isalpha() str.isalmun() str.startwith() str.endwith() str..replace(旧str,新str,n次) str.find('字符串')str.index('字符串')
formate() len(str)
(注:字符串常用方法一般不改变原来字符串 有返回值
str.find 找不到会返回-1,str.index()找不到会报错
str.strip() s = 'tqw*awle@xyt@' s6 = s.strip('qt@*wa') print(s6)
对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。
s = '我叫{name},今年{age},性别{sex},我依然叫{name}'
s11 = s.format(name='美龙', sex='man', age='23')
print(s11)
s = '我叫{0},今年{1},性别{2},我依然叫{0}{0}{0}'
s11 = s.format('美龙', '23', 'man')
print(s11)
s = '我叫{},今年{},性别{}
s11 = s.format('美龙', '23', 'man')
print(s11)
)
4.列表(顾头不顾尾)(copy,count,index,pop 有返回值, 列表连续删除只能从后往前不能从前往后删
可以用pop()或用一个列表记录要删的内容循环去删主列表(字典亦可用))
切片 增删改查
切片 与字符串类似
增
list.append() list.insert(下标,'str') list.extend(itearable) 迭代加
删
list.pop(可加索引) list.remove('str')(只删除第一个‘str’) list.clear() del list[按照切片删]
改
l[索引或切片]=@ (注:切片(步长) 改 必须一一对应 l1[1:4:2] = 'a' #错误 l1[1:4:2] = 'a2' 正确 l1[1:4:2] =[1,2,3] 错误)
查
按切片(步长)来查询
list.index('str') 找到第一个就返回找不到就报错
list.count('str')查某个元素出现的次数
其他方法:len(list) list.sort() list.sort(reverse=True)
5.元组
不可更改 (tuple=()为元组,tuple(1)为int tuple(1,)为元组)
只可按下标查找
range()
6.字典(for循环时不能增删)
键值对 键是可哈希的不可改的
可哈希(不可变)的数据类型: int, str, tuple, bool
语法 :
{key1: value1, key2: value2....}
增删改查
增
dict中的fromkey(),可以帮我们通过list来创建一个dict
dic = dict.fromkeys(["jay", "JJ"], ["周杰伦", "麻花藤"])
print(dic)
结果:
{'jay': ['周杰伦', '麻花藤'], 'JJ': ['周杰伦', '麻花藤']}
注意:
dic = dict.fromkeys(["jay", "JJ"], ["周杰伦", "麻花藤"])
print(dic)
dic.get("jay").append("胡⼤")
print(dic)
结果:
{'jay': ['周杰伦', '麻花藤', '胡⼤'], 'JJ': ['周杰伦', '麻花藤', '胡⼤']}
dic['name'] = '周润发' 有则修改 无则增加
dic.setdefault('李嘉诚') 有则不变无则增加
dic['key']=dic.get(['key'],[])
删
dic.pop() dic.popitem()(这两个有返回值)
dic.clear()
改
dic = {"id": 123, "name": 'sylar', "age": 18}
dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
dic.update(dic1) 把dic加到dic1上有则不变 无则添加
查
dic['name'] 没有键值对会报错
dic.get("ok") dic.get('ok',None) 没有键值对会返回一个值
其他:
dic.values() dic.keys() dic.items()
dic.items() [(key,value),(key1,value1),(key2,value2),...]
a,b=[1,3] a=1,b=3 a,b..=dic.items() a,b,...为元组w
7.集合(33 ww无3.6序w的 不重复的ww)
set集合是python的一个基本数据类型. 一般不是很常用. set中的元素是不重复的.无序的.⾥里面的元素必须是可hash的(int, str, tuple,bool), 我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也⽤{}表⽰
注意: set集合中的元素必须是可hash的, 但是set本⾝是不可hash得. set是可变的.
set 增(无返回值)
set.add() (不可重复增加)
set.update(迭代增加)
set 删(pop()有返回值 其余没有)
set.pop()
set.remove(元素)
clear()》》set() 注 dict.clear()为{}
set改
add remove
set查
for i in set:
print(i)
交集 s1&s2 并集s1|s2 差集s1-s2 反交集s1^s2