python的元组、列表、字典、集合

元组

tuple()函数:将任意序列或者迭代器转换成元组
count(num)方法:统计num在序列中的个数

元组拆包:

#元组拆包
x = (1,2,3)
a, b, c = x
#高级拆包,提供了特殊语法*_ ,即星号加一个下划线,表示不想要的
#有了*rest,就可以拆从起始位置开始到任意位置的拆包
#如现在只取下标为0,1,2
y = (1,2,3,4,5,6)
a, b, c, *_ = y

元组拼接

a = (1,2,3) + (4,5,6)

列表

list函数:将迭代器或者生成器转化成列表
appendf(elem)方法:向列表末尾添加元素
remove(elem)方法:根据元素信息,移除指定列表中的该元素
insert(index, elem)方法:将元素插入到index位置,index之后的元素后移
pop(index):移除index指定的元素,若无index默认移除最后一位元素

列表拼接与联合

#直接拼接
a = [1,2]
a = a + [3,4]
#使用extend方法
a = a.extend([3,4])
#虽然得到结果一致,但是第一种方法代价更大,因为需要创建和复制新的列表

排序

list.sort(key)方法:默认对数值或者ACSII码进行排序,当key=len时,对字符串长度进行排序
sorted(list)函数:对列表进行排序,排序后并进行拷贝返回

维护排序

#内置的bisect模块可以实现二分搜索和一排序列表的维护
import bisect as bs
a = [1,2,2,5,6]
bs.bisect(a,2) #返回2应该插入的位置的index
bs.insort(a, 3) #将3插入到应该插入的位置
#bisect不会事先检查列表是否已排序,所以对未排序的也不会报错,但是可能会得到错误的结果

切片

seq[start:end]:制作(拷贝)从start到end的切片,当这两者没有时,表示拷贝整个列表
seq[start:end:step]:每隔step拷贝一个值,当step为-1时,不代表间隔取值,而是表示对拷贝的列表进行翻转

内建序列函数

enumerate(seq)函数:返回(index,value)元组的序列

a = ['x','y']
enumerate(a)
#out: [(0,'x'), (1,'y')]

zip(seq1, seq2)函数:将两个序列的元素对位匹配组成元组,并构成一个列表,返回对象,zip可以处理很多序列(不止两个),生产的列表称多有最短序列的长度决定

a = [1,2,3]
b = [4,5,6]
c = [True, False]
print(list(zip(a,b,c))) #需要使用list将zip返回的对象转换成列表
#out:[(1, 4, True), (2, 5, False)]

reversed函数:将序列倒序,它是一个生成器,如果没有对它进行实例化,即是用list转换,或者for,他不会输出一个列表

字典

字典的key必须是不变的对象,而value可以为任何值
dict函数:接受一个二元组,生成一个字典

d = dict(zip(range(5), revered(range(5))))

dict.get(key, default_value):当key不是字典的key时,会返回None,而不是想pop那样会报错
hash函数:用于检测一个对象是否可以被哈希化,即是否可以作为key

集合

集合是无序且元素唯一的容器

set函数将一个序列变成集合
s.add(x)将x元素添加到s集合
s.clear()清空集合
s.remove(x)从集合中移除x
s.pop()移除任意元素,若集合为空则报错

推导式

列表:[x for x in collection if condition]
字典:{key: value for key, value in collection if condition}
集合:{x for x in collection if condition}
map(len, strings)函数: 计算strings中每个字符串的长度

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值