保定公司网站建设,黄石市城乡建设网站,如何建设文化企业网站,东莞网站优化找哪家python序列
列表
python变量不存放值#xff0c;之存放值的引用#xff0c;所以列表中元素可以是不同类型
1.常用方法
1.1 增加元素 append,在末尾插入元素 extend#xff0c;将一个列表整体插入到尾部 insert#xff0c;将某个元素插入到特定位 /*#xff0c;拼合…python序列
列表
python变量不存放值之存放值的引用所以列表中元素可以是不同类型
1.常用方法
1.1 增加元素 append,在末尾插入元素 extend将一个列表整体插入到尾部 insert将某个元素插入到特定位 /*拼合或拼合多个元素该操作不是原地操作会创建新地址 上三个都是原地操作在源地址上增删查改最后两个会新开辟一个地址
1.2 删除元素
del删除对象用在所有对象上删除的元素会在合适时间被回收可以gc.collect()立即回收remove从列表里移除某个值与特定值相等的元素pop从列表里移除某个特定位置的元素并返回该元素clear清空列表中所有元素但保留列表自身对象
1.3 排序 sort按指定规则对元素排序默认规则是比较元素大小 reverse按制定规则逆序排序 sortedsort异地排序 reversedreverse异地排序 前两个在原来基础上排后两个返回新对象
1.4 查找
countindex:返回元素在列表中首次出现的位置
1.5其他
zip将多个列表中的元素重新组合为元组并返回包含这些元组的zip对象enumerate返回包含下标和值的迭代对象可用来判断一个对象是否是迭代对象map():将一个函数依次作用到序列或迭代器对象的每个元素上并返回map对象reduce():接受两个函数的参数并从左到右把这两个函数依次作用在迭代对象的每个元素上在functools标准库中 a[1,2,3,4]b[5,6,7]abzip(a,b)ab
zip object at 0x0000028A50A61608list(ab)
[(1, 5), (2, 6), (3, 7)]enenumerate(a)en
enumerate object at 0x0000028A50A6BC60list(en)
[(0, 1), (1, 2), (2, 3), (3, 4)]zip两个列表的元素个数不同时以短的为准里面的参数是可迭代对象
map def fun(a):return a5 amap(fun,range(5))a
map object at 0x0000019F517923C8list(a)
[5, 6, 7, 8, 9]也可以是多参数函数返回的map对象中的所有元素都是经过函数处理过后的但map不会对迭代对象做修改 zzip(a,range(10))z
zip object at 0x0000028A50A08748list(z)
[(1, 0), (2, 1), (3, 2), (4, 3)]zzip(a,1*11)list(z)
[(1, 1), (2, 1), (3, 1), (4, 1)]2. 列表推导式
[表达式 for 变量 in 序列或迭代对象]可以嵌套多重循环也可以使用判断
例
j[1,3,2]
ss[s*2 for s in j]
print(ss)# 输出[2, 6, 4]使用推导式平铺嵌套列表
a[[a for a in range(3)]]*3
print(a)
s[j for i in a for j in i]
print(s)# 输出
# [[0, 1, 2], [0, 1, 2], [0, 1, 2]]
# [0, 1, 2, 0, 1, 2, 0, 1, 2]写一个列表生成式产生一个公差为11的等差数列 def 等差数列(self,begin,num):l[begin11*a for a in range(num) ]print(l)在一个字典中找出最大值 def 成绩最好(self):dir{zhangsan:95,lisi:59,wangwu:78,zhaoliu:87,xiaohua:100}max_scoremax(dir.values())max_name[max_name for max_name in dir if dir[max_name]max_score]print(max_name)矩阵转置 def 矩阵转置(self):l[[1,2,3],[4,5,6],[7,8,9]]s[[r[i] for r in l] for i in range(3)]print(s)3. 切片
由两个冒号三个数字组成三个数字分别是起始终止步长切片可以用在列表元组字符串等上
使用切片可以实现浅复制修改值等操作。
元组
元组不能修改比较安全访问速度比列表快(tuple)
1.生成器推导式
(表达式 for 变量 in 迭代器)生成器推导式形式与列表推导式类似但生成器推导式返回一个生成器对象生成器对象用完即销毁,生成器对象需要转换成列表或元组等数据类型才能使用也可以通过生成器对象的__next__属性访问生成器对象具有惰性求值的特点只在需要的时候才返回元素因此比列表推导式效率高适合大量数据的遍历。 s(a for a in range(5))s
generator object genexpr at 0x00000135FDE62C00list(s)
[0, 1, 2, 3, 4]list(s)
[]s(a for a in range(5))tuple(s)
(0, 1, 2, 3, 4)字典
字典是一种无序可变序列键是不可变类型值是可变类型字典访问速度也比列表快
1.常用方法
dict :创建字典update 将一个字典添加到另一个字典中pop删除并返回给定键对应的值popitem随机弹出一个元素返回元素delclearcopysetdefault查询字典中的元素不存在就添加一个get查询不存在允许输出特定值items返回字典中的元素key返回键的列表value返回值的列表 key[name,id]value[zhangsan,11]sdict(zip(key,value))s
{name: zhangsan, id: 11}s2{sex:boy}s.update(s2)s
{name: zhangsan, id: 11, sex: boy}s.pop
built-in method pop of dict object at 0x00000135FDE0F288s.pop(name)
zhangsans
{id: 11, sex: boy}s.popitem()
(sex, boy)s
{id: 11}s.get(name,No This Key)
No This Keys.setdefault(name,No This Key)
No This Keys
{id: 11, name: No This Key}集合
集合只支持元组等可哈希数据列表字典等可变类型不能成为集合中的元素可以使用函数hash()判断是否是可哈希数据字典和集合使用哈希表存储数据所以操作速度高于列表等。(set)
1.集合操作
add()update()pop():随即删除并返回一个元素不存在抛出异常remove()删除一个特点元素元素不存在抛出异常discard()删除一个特定元素不存在就忽视该操作clear()删除几何中所有元素 s{1,2,3,4,5}s.pop()
1s
{2, 3, 4, 5}s.remove(0)
Traceback (most recent call last):File pyshell#53, line 1, in modules.remove(0)
KeyError: 0s.remove(2)s
{3, 4, 5}s.discard(0)s
{3, 4, 5}2.集合运算
交并|差-对称差^比较: 用来判断并包关系不是比较大小
3. 集合推导式
{表达式 for 变量 in 迭代器}如 import randoms{random.randint(1,500) for i in range(20)}s
{1, 387, 268, 411, 293, 167, 48, 53, 441, 187, 191, 195, 324, 465, 473, 474, 481, 362, 114, 123}len(s)
20s{random.randint(1,5) for i in range(20)}s
{1, 2, 3, 4, 5}集合不允许元素重复所以可以利用这一特性实现去重。
序列解包 x,y,z1,2,3p(2,3,4)(x,y,z)pp
(2, 3, 4)pmap(str,range(3))p
map object at 0x000001BB8B842320list(p)
[0, 1, 2]