Day 7 二次编码,基础类型补充以及未来可能遇到的难点和坑

it2022-05-05  171

str:不可变 1.1首字母大写: name ='alex' name1 = name.capitalize() print(name1)

1.2每个单词首字母大写 name ='alex wusir' name1 = name.title() print(name1) print(name.title())

1.3大小写反转 name = 'Alex' name1 = name.swapcase() print(name1) print(name.swapcase())

1.4 居中---填充 name = 'alex' name1 = name.center(20,'-') print(name1) print(name.center(20,"-"))

1.5 查找 从左向右 只查找一个 name = 'alexaaal1' name1 = name.find('e') #只能查找一个,并且输出值为索引。 print(name1) print(name.find('e'))

1.6 拼接 name = 'alex' name1 = ''.join(name) print(name1) print(''.join(name))

1.7 格式化 1.格式化 2.f 3.name.format() name = 'alex{},{},{}' name1 = name.format(1,2,3) print(name1)# 按照顺序位置进行填充

name = 'alex{k1},{k},{k3}' name1 = name.format(k=1,k1=2,k3=3) print(name1)# 按照关键字进行填充

name = 'alex{2},{0},{1}' print(name.format('a','b','c'))# 按照索引值进行填充

开辟新的空间 name = "alex" name1 = "wusir" print(id(name)) print(id(name1)) print(id(name + name1))#地址都不同

list: 定义方式: list("123")

其他方法: lst = [1,2,23,234,435,36,23,213421,421,4231,534,65] lst.sort() # 排序 (升序) print(lst)

lst = ["2233","12"] lst.sort() # 排序 (默认升序) print(lst)

lst = [1,2,23,234,435,36,23,213421,421,4231,534,65] lst.sort(reverse=True) # 降序 print(lst)

lst = [1,2,3,4455,5,6,7] print(lst[::-1])1.反转 lst.reverse()2.反转 print(lst)

lst = [1,2,3,4,5123,21345,231123,4,1235,234,123] lst.sort() lst.reverse() 先升序,在反转 print(lst)

面试题 lst =[[]] new_lst = lst * 5 new_lst[0].append(10) print(new_lst) 答: new_lst = [[10],[10],[10],[10],[10]]

lst = [1,[]] new_lst = lst * 5 new_lst[0] = 10 print(new_lst) 答: new_lst = [[10,[]],[1,[]],[1,[]],[1,[]],[1,[]]]

lst = [1,[]] new_lst = lst * 5 new_lst[1] = 10 print(new_lst) 答: new_lst = [[1,10],[1,[]],[1,[]],[1,[]],[1,[]]]

方式一: lst.extend(lst1) print(lst) 方式二: print(lst+lst1) new_lst = lst * 5 print(id(new_lst[0]), id(lst[0]))#地址相同

lst = [[]] new_lst = lst * 5 new_lst[0].append(10) print(new_lst) 答: new_lst = [[10],[10],[10],[10],[10]]

tuple: # 数据类型是()中数据本身 tu = (12) print(type(tu))

tu = (1,) #(1,)是元组 print(type(tu))

元组 + * 不可变共用,可变也共用

dict:定义一个字典: print(dict(k = 1,k2 = 2))

随机删除 popitem dic = {"key":1,"key3":56,"key2":2} print(dic.popitem()) #返回的是被删除的键值对(键,值) print(dic) python36以上 默认删除最后一个

dic = {} dic1 = dic.fromkeys("123",[23]) print(dic1)

dic = dict.fromkeys("123456789",1) # 批量添加键值对"键是可迭代对象",值 -- 会被共用 dic["1"] = 18 print(dic)

set: set()---空集合 {}---空字典 定义集合: print(set('alex')) #迭代添加

s = {1,2,3,4} #多运行几次会出现错误答案 s.update("今天") # 迭代添加 print(s)

bool: False 除了下列表示bool为0的之外,剩下的都为真。 数字: 0 字符串: "" 列表:[] 元组:() 字典:{} 集合: set() 其他: None

数据类型之间转换 list转tuple temp_list = [1,2,3,4,5] print(tuple(temp_list))

tuple转list tuple = (1,2,3,4,5) print(list(tuple))

str--list name = 'alex' print(name.split())

list--str lst = ['1','2','3'] print('_'.join(lst))

dict --str dic = {"1":2} print(str(dic),type(str(dic)))

set -- list

list -- set ''.join(list)

python数据类型: 可变: list ,dict ,set 不可变: int bool str tuple 有序: list,tuple,str,int,bool 无序: dict,set 取值方式: 索引: str list tuple 直接: set ,int ,bool 键: dict

lst = [1,2] for i in lst: lst.append(3) print(lst) 答死循环

删除列表的坑 lst = [1,2,3,4] for i in lst: lst.pop() print(lst) 答:lst = [1,2]

lst = [1,2,3,4] for i in lst: lst.pop(0) print(lst)

lst = [1,2,3,4] for i in lst: lst.remove(i) print(lst)

成功删除的方式: lst = [1,2,3,4,5,6] for i in range(len(lst)): lst.pop() print(lst)

lst = [1,2,3,4,5,6] for i in range(len(lst)-1,-1,-1): del lst[i] print(lst)

lst =[1,2,3,4,5,6] for i in range(len(lst)): del lst[-1] print(lst)

lst = [1,2,3,4,5,6] lst1 = lst.copy() for i in lst1: lst.remove(i) print(lst)

删除字典的坑

dic = dict.fromkeys('12345',1)# 字典的迭代的时候改变了原来的大小(不能加不能删) for i in dic: dic[i] = '123' print(dic)

dic = dict.fromkeys('12345',1) dic1 = dic.copy() for i in dic1: dic.pop(i) print(dic)

集合和字典都是迭代的时候不能改变原来的大小

密码本: ascii -- 没有中文 gbk -- 英文 8b(位) 1B(字节) 中文 16b 2B unicode -- 英文16b 2B 中文32b 4B utf-8 -- 英文8b 1B 欧洲16b 2B 亚洲24b 3B

name = "你好啊" s1 = name.encode("utf-8") # 编码 9 s2 = name.encode("gbk") # 编码 6 s2 = s1.decode("utf-8") # 解码 print(s2.encode("gbk"))

以什么编码集(密码本)进行编码就要用什么编码集(密码本)解码

今日总结 1.编码解码 编码:将文字转换字节形式 encode 解码:将字节转换文字形式 decode

2.基础数据类型补充: str: 首字母大写 capitalize 每个单词首字母大写 title 大小写反转swapcase 居中--填充center 查找:find index 拼接 ''.join() 格式化:name.format(a) list: 排序(默认是升序)降序sort(reverse=True) 反转 reverse 查找 index 统计 count + * 元素是共用的 面试题

tuple: (1,)#元组 (1)#括号里的数据本身

dict: popitem fromkeeys('可迭代的键',共用的值)--坑 dict(key =1,key2 = 2)

set: set()---空集合 set('alex')#迭代添加

坑 列表删除--从后向前删除 创建一个新的列表,删除旧的列表

字典删除--循环的时候不能改变源数据的大小(可以改变值) 创建一个新字典,删除旧的字典 集合删除--循环的时候不能改变源数据的大小

类型转换 list--str join str--list split

转载于:https://www.cnblogs.com/zhuzhizheng/p/11178923.html


最新回复(0)