python是个坑_python 坑1

1.编码解码

编码:将文字转换成字节形式 encode

name = '小冯'

print(name.encode('utf-8'))# b'\xe5\xb0\x8f\xe5\x86\xaf'

解码:将字节转换成文字形式 decode

name = '小冯'

msg = name.encode('utf-8')

print(msg.decode()) # 小冯

2.基础数据类型补充:

2.1 str:

首字母大写

name = 'xiao,feng'

print(name.capitalize()) # Xiao,feng

**每个单词首字母大写 **

print(name.title()) # Xiao,Feng

**大小写反转 **

name = 'xiao,fenG'

print(name.swapcase()) # XIAO,FENg

居中 -- 填充

print(name.center(20,'*')) # *****xiao,feng******

查找:find index

print(name.find('f')) # 返回索引值 5

print(name.find('y')) # 如果没有 则返回 -1

print(name.index('f')) # 返回索引值 5

print(name.index('y')) # 报错 ValueError: substring not found

**拼接 **

print('_'.join(name)) # x_i_a_o_,_f_e_n_g

格式化: name.format

msg = '啦啦啦{},{},{}'

print(msg.format(1,2,3)) # 啦啦啦1,2,3

msg = '啦啦啦{2},{0},{1}'

print(msg.format(1,2,3)) # 啦啦啦3,1,2

msg = '啦啦啦{q},{w},{e}'

print(msg.format(q = 5,e = 9,w = 3)) # 啦啦啦5,3,9

2.2list:

**排序(默认是升序) 降序sort(reverse=True) **

lst = [1,2,3,4,5]

lst.sort(reverse = True)

print(lst) # [5, 4, 3, 2, 1]

lst.sort()

print(lst) # [1, 2, 3, 4, 5]

反转

lst.reverse()

print(lst) # [5, 4, 3, 2, 1]

查找 index

print(lst.index(4)) # 3

print(lst.index(9)) # 报错 ValueError: 9 is not in list

**统计 count **

print(lst.count(5)) # 1

+ - * 元素都是共用的 会开辟一个新的内存空间

面试:

lst = [[]]

new_lst = lst * 5

new_lst[0].append(10)

print(new_lst) # [[10], [10], [10], [10], [10]]

lst = [1,[]]

new_lst = lst * 5

new_lst[0] = 10

print(new_lst) # [10, [], 1, [], 1, [], 1, [], 1, []]

lst = [1,[]]

new_lst = lst * 5

new_lst[1] = 10

print(new_lst) # [1, 10, 1, [], 1, [], 1, [], 1, []]

lst = [1,2,3]

new_lst = lst * 5

print(id(new_lst), id(new_lst[0])) # 1813566569096 1756851216

2.3tuple:

​**(1,) # 元组 **

print(type((1,))) #

​**(1) # 括号里数据本身 **

print(type(1)) #

2.4dict:

​popitem 随机删除字典中的键值对

dic = {"key":1,"key2":2,"key3":56}

print(dic.popitem()) # ('key3', 56)

print(dic) # {'key': 1, 'key2': 2}

**fromkeys("可迭代的键",共用的值) -- 坑 **

dic = {}

dic.fromkeys("123",[23]) # 批量添加键值对{"1":[23],"2":[23],"3":[23]}

print(dic) # {}

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

dic["1"] = 18

print(dic) # {'1': 18, '2': 1, '3': 1, '4': 1, '5': 1, '6': 1, '7': 1, '8': 1, '9': 1}

​dic(key = 1,key2 =2)

print(dict(key = 1,key2 = 2)) # {'key': 1, 'key2': 2}

2.5set:

​**set() -- 空集合 **

​set("alex") # 迭代添加

3.坑

print(list('qwe')) # ['q', 'w', 'e']

print(tuple('qwe')) # ('q', 'w', 'e')

print(dict('qwe')) # ValueError: dictionary update sequence element #0 has length 1; 2 is required

print(set('qwe')) # {'q', 'e', 'w'}

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) # [1, 2]

lst = [1,2,3,4]

for i in lst:

lst.pop()

print(lst) # [1, 2]

lst = [1,2,3,4]

for i in lst:

lst.pop(0)

print(lst) # [3, 4]

lst = [1,2,3,4]

for i in lst:

lst.remove(i)

print(lst) # [2, 4]

列表删除 -- 从后向前删除

lst = [1,2,3,4,5]

for i in range(len(lst)):

lst.pop()

print(lst)

lst = [1,2,3,4,6]

for i in range(len(lst)-1,-1,-1):

del lst[i]

print(lst)

lst = [1,2,3,4,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)

​ **字典删除 -- 循环的时候不能改变源数据的大小 (可以改变值) **

dict.fromkeys('123456',[])

​ **创建一个新的字典,删除旧的字典 **

dic = dict.fromkeys("12345",1)

dic1 = dic.copy()

for i in dic1:

dic.pop(i)

print(dic)

​ 集合删除 -- 循环的时候不能改变源数据的大小

4.类型转换:

​**list -- str join **

​str -- list split

​set - list

​list - set

5.数据类型:

可变:list ,dict ,set

不可变:int bool str tuple

有序:list,tuple,str,int,bool

无序:dict,set

取值方式:

索引: str list tuple

直接: set ,int ,bool

**键: dict **

bool: False

数字: 0

字符串: ""

列表:[]

元组:()

字典:{}

集合: set()

其他: None

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值