Python(五):list、tuple

列表 list

操作

基本序列操作

索引(正负)、切片、遍历元素、查找(in或index)
li = [[1, [2, 3], 4], [5, 6], [7]]

# 索引(正负)
print(li)         # [[1, [2, 3], 4], [5, 6], [7]]
print(li[0])      # [1, [2, 3], 4]
print(li[-1])     # [7]
print(li[-2])     # [5, 6]
print(li[0][1][1])    # 3

# 切片
li = list(range(10))
print(li[0:3])     # 0,1,2
print(li[:3])      # 0,1,2
print(li[1:])      # [1, 2, 3, 4, 5, 6, 7, 8, 9]		从1开始,到最后
print(li[-2:])      # [8, 9]				 从倒数第二个开始
print(li[::2])		# [0, 2, 4, 6, 8]		带步长
print(li[6:2:-1])		# [6, 5, 4, 3]

# 遍历
for x in li:
	print(x)
	
li = ['a', 'b', 'c']
for i, x in enumerate(li):		# 索引, 元素
    print(i, x)


# 查找
li = ['a', 'b', 'c']
x = 'a'
print(x in li)	#True
print(li.index(x))	#0
增、删、改
li = [[1, [2, 3], 4], [5, 6], [7]]

# 增
li = [1,[2,3]]
li.append([[4,5],6])		   # [1, [2, 3], [[4, 5], 6]]   末尾,作为一个整体添加
li.insert(0, [[8,9],10])       # 任意位置,必须有参数index
li.extend([[4,5],6])		   # [1, [2, 3], [4, 5], 6]   末尾,作为元素添加

# 删
# del
del li[0] 
# pop
x = li.pop()	# 末尾
x = li.pop(0)	# 任意位置
# remove	最慢(匹配值)
li.remove([[8,9],10])
print(li)

# 改
li[-1] = 8
拼接(+)、相乘
# 拼接
li1 = [1,2,3]
li2 = [(4,5),[6,7]]
print(li1+li2)		# [1, 2, 3, (4, 5), [6, 7]]
print(li1.extend(li2))	# [1, 2, 3, (4, 5), [6, 7]]

# 相乘
print(li1*3)		# [1, 2, 3, 1, 2, 3, 1, 2, 3]
li = [0]*10
print(li)	# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
排序、反转、比较、复制

Python(二十五):排序、反转

Python(十九):比较、深浅拷贝


特殊操作

构造列表:列表解析+一行代码
# 偶数的平方
li = [x**2 for x in range(10) if x%2==0]
print(li)		# [0, 4, 16, 36, 64]

元组tuple

  • 元组由逗号标识,而不是小括号
sex = ()
sex = (male,)		# 元组创建,当只有一个元素时,必须加逗号

操作

基本序列操作

索引(正负)、切片、遍历元素、查找(in)

同list

增、删、改

元组没有增删改,只能创建新元组:可以先转为list,再增删改,再转为tuple

拼接(+)、相乘
# 拼接
t1 = (1,2,3)
t2 = ('a','b','c')
print(t1+t2)		# (1, 2, 3, 'a', 'b', 'c')

# 相乘
print(t1*3)		# [1, 2, 3, 1, 2, 3, 1, 2, 3]
排序、反转、比较、复制

Python(二十五):排序、反转

Python(十九):比较、深浅拷贝


list与tuple

两者都是都是一个可以放置任意数据类型有序集合,元素类型不需要一致。
有序:内部有序,插入顺序与输出一致

列表元组
性质长度不固定长度固定(初始化时),不能增删改
存储与性能存储略大:存储指针,python会额外分配多一点空间,保证了其操作的高效性(增加 / 删除的时间复杂度均为 O(1))
性能略逊:初始化创建花的时间更多
存储更小:存储空间固定
性能更优
索引
切片
嵌套

tuple 与 垃圾回收机制

对静态数据做一些资源缓存:

  • 对于一些静态变量,比如元组,如果它不被使用并且占用空间不大时,Python 会暂时缓存这部分内存。
  • 下次我们再创建同样大小的元组时,Python 就可以不用再向操作系统发出请求,去寻找内存,而是可以直接分配之前缓存的内存空间

list 方法、内置函数总结

  • 永久性函数:
    x.fun()
    fun(x)
  • 暂时性函数:必须返回赋值才能变为永久性
    x = x.fun()
    x = fun(x)
list的方法永久
list.append(x)
list.insert(index, x)
x = list.pop(index=-1)
list.remove(x)
内置函数永久
li = sorted(li)×
iterator = reversed(li) ,返回迭代器×
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值