int bool 字符串 列表 字典 集合

时间:2023-03-08 17:54:25

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