02 Python数据类型之列表

Python内嵌的数据类型主要包括以下两类:

有序:

List(列表),是有序集合,没有固定大小,可以通过对偏移量以及其他方法修改列表大小。列表的基本形式如:[1,2,3,4]

Tuple(元组),是有序集合,是不可变的。可以进行组合和复制运算后生成一个新的元组。元组的基本形式比如:(1,3,6,10)

String(字符串),也是有序集合,字符串的基本形式比如:“hello”,这里不进行具体介绍

无序:

Set(集合),是一个无序不重复元素的集。基本功能包括关系运算和消除重复元素。集合的基本形式如:set(‘abcde’)

Dictionary(字典)是无序的键:值对(key:value对)集合,键必须是互不相同的(在同一个字典之内)。字典的基本形式如:{‘jack’:4098,‘space’:4139}

列表

List(列表)是Python中最通用的序列。列表是一个任意类型对象位置的相关有序集合。

索引是从0开始而非1开始!!!

列表中值的分割用变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认"0"开始的,从右到左索引默认"-1"开始的,下标可以从空表示取到头或尾。可以对列表进行索引、切片等操作。

列表的使用

定义列表

L = [1,2,3,4,5,6,7,8,9]

# 使用len()函数来查看列表的长度
len(L)
9

列表索引

# 打印列表中第一个元素
print(L[0])

# 负数表示从后 数第几个元素,-1即为列表的最后一个元素
print(L[-1])
1
9

列表切片(注意:切片并不会取到“尾下标”那个数)

# 表示取到第2g元素到第5个元素,并不会取到第6个元素
L[1:5]
[2, 3, 4, 5]

+操作可以拼接列表

L + [2,3,4]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4]

Python的列表数据类型包含更多的方法

list.append(x) 把一个元素添加到列表的结尾

list.extend(L) 将一个给定列表中的所有元素都添加到另一个列表中

list.insert(i,x) 在指定位置插入一个元素,第一个参数是准备插入到其前面的那个元素的索引

list.remove(x) 删除列表中值为x的第一个元素,如果没有这样的元素,就会返回一个错误

list.pop([i]) 从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop()返回最后一 个元素,元素随即从链表中被删除。

list.index(x) 返回列表中第一个值为x的元素的索引。如果没有匹配的元素就会返回一个错误

list.count(x) 返回x在列表中出现的次数

list.sort(cmp=None,key=None,reverse=False) 对列表中的元素进行排序

list.reverse() 就地倒排链表中的元素

del list[i] 可以从列表中按给定的索引而不是值来删除一个子项

# 统计a中元素出现的次数
a = [1,2,3,3,1234.5]

print("a中1出现的次数:",a.count(1))
print("a中3出现的次数:",a.count(3))
print("a中x出现的次数:",a.count('x'))
a中1出现的次数: 1
a中3出现的次数: 2
a中x出现的次数: 0
# 在a的尾部添加元素
a.append(555)
a
[1, 2, 3, 3, 1234.5, 555]
# 将[7,8,9]与a进行拼接
a.extend([7,8,9])
a
[1, 2, 3, 3, 1234.5, 555, 7, 8, 9]
# 在a中第三个位置插入-1
a.insert(2,-1)
a
[1, 2, -1, 3, 3, 1234.5, 555, 7, 8, 9]
# 返回2在a中的位置
a.index(2)
1
# 反向排列a
a.reverse()
a
[9, 8, 7, 555, 1234.5, 3, 3, -1, 2, 1]
# 逆序排列a
a.sort(reverse=True)
a
[1234.5, 555, 9, 8, 7, 3, 3, 2, 1, -1]
# 删除列表a中值为3的第一个元素
a.remove(3)
a
[1234.5, 555, 9, 8, 7, 3, 2, 1, -1]
# 删除a中索引为0的元素
del a[0]
a
[555, 9, 8, 7, 3, 2, 1, -1]
# 删除a中索引为2:4的元素
del a[2:4]
a
[555, 9, 3, 2, 1, -1]

把列表当做堆栈使用

列表方法使得列表可以很方便的做为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进后出)。用append()方法可以把一个元素添加到堆栈中。用不指定索引的pop()方法可以把一个元素从堆栈顶释放出来。例如:

stack = [3,4,5]
stack.append(6)
stack.append(7)
stack
[3, 4, 5, 6, 7]
# 后进后出
stack.pop()
stack
[3, 4, 5]
print(stack.pop())
print(stack.pop())
print(stack)
5
4
[3]

把列表当做队列使用

你也可以把列表当做队列使用,队列作为特定的数据结构,最先进入的元素最先释放(先进先出)。不过,列表这样用效率不高。相对来说从列表末尾添加和弹出很快;在头部插入和弹出很慢(因为为了一个元素,要移动整个列表中的所有元素)

要实现队列,使用collections.deque,它为在首尾两端快速插入和删除而设计。例如:

from collections import deque
queue = deque(["Eric","John","Michael"])
queue.append("Terry")
queue.append("Graham")
queue
deque(['Eric', 'John', 'Michael', 'Terry', 'Graham'])
print(queue.popleft())
print(queue.popleft())
print(queue)
Eric
John
deque(['Michael', 'Terry', 'Graham'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值