面试之——基础相关
1、 数据类型
字符串, 字典, 元组, 列表, 集合, collections
字符串:
a = 'abbcdd' ret = a.count("b") # 2 ret = a.find('y') # -1 ret = a.upper() ret = '_'.join(a) # a_b_b_c_d_d ret = a.split('b') # ['a', '', 'cdd']
列表:
li = ['a','b','c',1,2,3] li[-1] li[0:5:2] # 索引:0~5, 步长:2 li.append(4) li.insert(0) li.reverse() li.index('c') li.extend([1,2]) li.sort(reverse=True) # 倒序
元组:
只读,不能修改
字典:
dic["k1"] = "v1" dic.setdefault("k2", "v2") dic.pop("k2") dic.popitem() dic.clear() dic1.update(dic2) dic.get('k1') for v in dic.values():pass for k,v in dic.items():pass
集合:
无序,不重复, 元素: 不可变类型
set = {1, 'a'}
set.add('b')
set.update('cd') # 迭代添加: {'d', 1, 'c', 'a'}
set.remove('a')
set.clear()
set1 & set2 # 交集
set1 ^ set2 # 反交集
set1 | set2 # 并集
set1 - set2 # 差集
set1 < set2 # 子集 return: bool
set2 > set1 # 超集 return: bool
set = frozenset(iteralbe) # 迭代创建set()
collections:
from collections import Iterator # 迭代器 from collections import Iterable # 可迭代对象 在内置数据类型(list ,tuple ,dict ,set)的基础上,collections提供了几个额外的数据类型: namedtuple , deque , OrderedDict , defaultdict , Counter 1. namedtuple: 生成可以使用名字来访问元素内容的tuple 2. deque: 双端队列,可以快速的从另外一侧追加或取出元素 3. OrderedDict: 有序字典 4. defaultdict: 带有默认值的字典 5. Counter: 计数器,主要用来计数
1. 命名元组: namedtuple: from collections import namedtuple res = namedtuple('name',['x','y','z']) # ‘name’ 就是 元组名 []里面就是元组的 元素 ret = res(2,3,4) #传参 一一对应 print(ret) # name(x=2, y=3, z=4) print(ret.x) # 2 print(ret.y) # 3 print(ret.z) # 4 nametuple主要用于描述一类东西,而这类东西都有相同的特征 2. 双端队列: deque from collections import deque dq = deque() dq.append(1) dq.append(2) dq.appendleft('a') dq.appendleft('b') print(dq) #deque(['b', 'a', 1, 2]) print(dq.pop()) # 2 从后面取值 print(dq.popleft()) # b 从前面(左)取值 3. 有序字典: OrderedDict from collections import OrderedDict od = OrderedDict( [ ('a', 1), ('b', 2), ('c', 3) ] ) print(od) #([('a', 1), ('b', 2), ('c', 3)]) OrderedDict的Key是有序的 有序字典取值顺序: from collections import OrderedDict od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 print(od.keys()) #有序字典取值: 先进先出 #odict_keys(['a', 'b', 'c']) 4. 带默认值的字典 把大于66和小于66的元素分别放到字典的两个key中 values = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90] from collections import defaultdict my_dic = defaultdict(list) # 如果key不存在,默认返回一个空列表 for i in values: if i > 66: my_dic['k1'].append(i) elif i < 66: my_dic['k2'].append(i) print(my_dic) # 如果用普通字典 my_dic = {} for i in values: if i > 66: if 'k1' in my_dic: # 需要先判断key是不是存在 my_dic['k1'].append(i) else: my_dic['k1'] = [i] # 如果不存在,还要先创建列表 elif i < 66: if 'k2' in my_dic: my_dic['k2'].append(i) else: my_dic['k2'] = [i] print(my_dic)
浙公网安备 33010602011771号