python列表、元组、字典、集合方法总结

1.python容器的概念

容器类型:多个数据汇总。
其中包括三种基本类型:
(1)序列型:列表、元组(不可修改)
(2)映射型:字典
(3)集合型:集合

2.列表与元组

2.1通用操作:
s1 + s2 : 连接 将s1和s2连接成一个序列
s * n 或 n * s : 将序列s复制n次并连接成一个序列
s[i]: 返回序列s中的第i个元素;正向索引,i 从0至n-1;反向索引,i从-1至-n。n是元素个数。
s[start : stop : step]将序列s中的第start个元素(含)起至第stop个元素(不含),切成间隔为step的子序列。若start为0可省略;若step为1可省略(当步长省略时,可顺便省略最后一个冒号)。
len(s): 求长度 返回序列s的元素数(长度)
min(s) 和 max(s): 返回序列s中的最小和最大的元素
x in s 和 x not in s :判断元素x 是否是序列s中的元素,返回True 或 False
del s 删除 删除序列s
for var in s : 循环操作 对s中的元素进行循环操作

2.2列表及内置方法
列表(list)是元素可变的有序表。可添加/修改/删除元素,元素类型可不同。
list内置的方法:
2.21分片赋值:将指定位置分片元素值变成另一个列表的值

L=[1,2,3,4,5]
L[1:1]=[10,9]
print(L)
#[1, 10, 9, 2, 3, 4, 5]

L[1:1]为空表,被赋值为[10,9],从而实现将新元素插入原来列表指定位置。

也可以将指定的分片赋值的空表,实现元素的删除

L=[1,2,3,4,5]
L[1:3]=[]
print(L)
#[1, 4, 5]

2.22追加,弹出与插入
L.append(var) :在表尾追加元素
L.pop(x):范湖序号为x的元素,如果括号为空则返回最后一个元素,并在列表中删除该元素
L.insert(index,var):在下标index的位置插入元素

2.23其他基本方法

L.remove(var)  #删除第一次出现的该元素
L.count(var)  #该元素在列表中出现的个数
L.index(var)  #该元素的位置,无则抛异常 
L.extend(list) #追加list,即合并list到L上
L.sort(key=None,reverse=false)  #排序,关键词key,一般通过lambda表达式可对指定元素排序,默认升序
L.reverse()   #倒序
L.copy()  #返回列表的浅拷贝
del L[1]  #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
L.clear()#删除列表内的所有元素等价于 del L[:]

2.24列表基本函数

map:将指定函数作用于列表每一个元素。

L=['1','2','3']
z=map(float,L)
L=list(z)
print(L)

输出结果为[1.0, 2.0, 3.0],如果只用map函数,那么将返回map对象。

zip :
(1)zip函数将多个列表对应元素整合成元组的形式,同map相似,使用该函数将返回的是zip对象,可用list 转化成列表表示。

order=['0','1','2']
ages=[21,20,19]
ziped=zip(order,ages)
print(ziped)
print(list(ziped))

运行结果为:
<zip object at 0x00000249FA734BC8>
[(‘0’, 21), (‘1’, 20), (‘2’, 19)]

2.25元组
(1)元组创建后不可变,但列表可变
(2)元组可做字典的键以及集合的元素,但列表不行
(3)同过tuple()和list()可分别实现列表和元组相互转化

2.26列表推导式`
语法格式[结果表达式 for 表达式1 in 容器1 if 条件1(可不加if )

for 表达式n in 容器n if 条件n(可不加if )]

L=[(x,y) for x in range(1,101) if x%2==0  for y in range(1,101) if y%2!=0]
#该列表推导式等价于
L0=[]
for x in range(1,101):
    if x % 2 == 0:
        for y in range(1, 101):
             if y % 2 != 0:
                L0.append((x,y))
L==L0
Out[19]: True

3.字典

3.1性质:
(1)字典类型是“键:值”的数据组合,每一个元素都是一个键值对
(2)字典通过键查找对应的值,这一过程称为“映射”
(3)键唯一,且为不可变数据类型,如:字符串,元组
(4)值可以是任何数据类型

3.2基本操作

(1)同一个字典的两种创建方法


D0=dict([[(1,2),['a','b']],[(3,4),['c','d']]])
D1={(1,2):['a','b'],(3,4):['c','d']}

(2)由键取值的方法

print(D1[(1,2)])
print(D1.get((3,6),'无此键值对'))#返回键对应的值,如果查不到该键则返回后面的内容,默认为None

输出的结果为:
[‘a’, ‘b’]
‘无此键值对’

(3)修改与删除

d[key]=value
del d[key]

(4)遍历

for key in D0.keys():
#遍历所有键
for value in D0.values():
#遍历所有值
for key,value in D0.items():
      print(key,value)

最后一条输出结果为
(1, 2) [‘a’, ‘b’]
(3, 4) [‘c’, ‘d’]

3.3字典推导式
和列表推导类似

A=['a','b','c','d']
print({x:ord(x) for x in A})

输出结果为:
{‘a’: 97, ‘b’: 98, ‘c’: 99, ‘d’: 100}

3.4其他字典内置操作

D0.copy() #返回D0的浅拷贝
D0.clear() #清空D0的值
D0.pop(key[,default]) #若字典存在key 则删除并返回key的值,若不存在,返回default值,如果没有给出default则引发Keyerror 异常
print(D0.pop(5,'无该键值对'))
'无该键值对'

D0.setdefault(key,default=None)#若字典中不存在Key,则通过D0[key]= default 为其赋值
D3.update(D0) #将字典D0的键值对添加到D3中。
D3={1:2}
print(D3.update(D0))
 {1: 2, (1, 2): ['a', 'b'], (3, 4): ['c', 'd']}

4.集合

4.1性质:
(1)集合为不重复元素无序集,与数学定义相似
(2)元素为不可变数据类型,例如:字符串,元组
(3)无顺序因而没有索引,排序的概念
(4)通常可以用集合来去重
(5)由set()创建,或将其他容器转化为集合

4.2基本方法

(1)创建:

S={x1,x2}

(2)添加和移出

S.add(x)和S.remove(x)

S={1,2,3}
S.add(4)
print(S)
{1, 2, 3, 4}

S.remove(1)
print(S)
{2, 3, 4}

len(S) #求项数
3

遍历与集合推导式与列表字典类似。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值