【笔记】python列表和元组

1 列表(list)

列表是一种序列,序列是Python 中最基本的数据结构。序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。Python 有 6 个序列的内置类型(字符串、列表、元组、字典、集合等),但最常见的是列表和元组(不可修改的列表)。列表都可以进行的操作包括索引,切片,加,乘,检查成员。

列表是一些变量组成的序列,这些变量可以是数字、字符串、列表、集合等等,一且皆可列,如下。

set1={1,2,3.5,3}#集合
list1=[1,2,'nihao',45]#列表1
list2=[list1,set1,'wotianna',98]#列表2,包含了列表1和集合1(列表嵌套)
print(list1,list2)

输出结果为

[1, 2, 'nihao', 45] [[1, 2, 'nihao', 45], {3.5, 1, 2, 3}, 'wotianna', 98]

一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

2 列表操作

2.1 索引

可以正序索引、也可以倒序索引,如下边两个图。

list1=[1,2,'3',"4"]
print(list1[0],list1[3])#列表元素正序索引
print(list1[-1],list1[-4])#

输出结果

1 4
4 1

2.2 更新列表

可以直接修改列表元素,也可以使用 append() 方法来添加列表项。

list1=[1,2,'3',"4"]
print(list1)
list1[0]=23
list1[2]='forestli'
print(list1)

输出结果

[1, 2, '3', '4']
[23, 2, 'forestli', '4']

2.3 删除列表元素

使用 del 语句来删除列表的的元素,可也已使用 remove() 方法。

list1=[1,2,'3',"4"]
print(list1)
del list1[2]
print(list1)

输出结果

[1, 2, '3', '4']
[1, 2, '4']

2.4 脚本操作符

Python 表达式结果描述
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ")1 2 3迭代

 2.5 截取与拼接

列表变量[头下标:尾下标:步长],步长默认是1,及正序步进1。

list1=[1,2,'3',"4"]

print(list1[:3])#截取元素0到元素3(不含)之间的元素
print(list1[1:])#截取元素1到最后的元素
print(list1[1:3])#截取元素1到元素3(不含)的元素
print(list1[-3:-1])#截取元素-3到元素-1(不含)的元素
print(list1[-1::-1])#倒序输出
print(list1[-1:-5:-1])#倒序输出,与上一个一样

list2=[34,'nihao',67]
list3=list1+list2  #拼接
print(list3)

输出结果

[1, 2, '3']
[2, '3', '4']
[2, '3']
[2, '3']
['4', '3', 2, 1]
['4', '3', 2, 1]
[1, 2, '3', '4', 34, 'nihao', 67]

2.6 列表函数和方法

函数

序号函数
1len(list)
列表元素个数
2max(list)
返回列表元素最大值
3min(list)
返回列表元素最小值
4list(seq)
将元组转换为列表

方法

序号方法
1list.append(obj)
在列表末尾添加新的对象
2list.count(obj)
统计某个元素在列表中出现的次数
3list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5list.insert(index, obj)
将对象插入列表
6list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj)
移除列表中某个值的第一个匹配项
8list.reverse()
反向列表中元素
9list.sort( key=None, reverse=False)
对原列表进行排序
10list.clear()
清空列表
11list.copy()
复制列表

 3 元组(tuple)

元组和列表基本一样,不同之处在于

1.元组元素不能修改,但可以包含可以修改的元素,比如列表。

list1=[34,'nihao',67]
tup0=(1,2,3,'forest',list1,32)
print(tup0)
list1[2]='li'
print(tup0)

输出结果

(1, 2, 3, 'forest', [34, 'nihao', 67], 32)
(1, 2, 3, 'forest', [34, 'nihao', 'li'], 32)

元组的不可变指的是元组所指向的内存中的内容不可变,即当元组创建之后,其中的元素不能改变,给元组重新赋值是可以的。通过以下结果可以发现,重新赋值元组相当于重新创建了这个元组。

tup0=(1,2,3,'forest',32)
print(id(tup0))
#tup0[0]=98    #不允许修改,会报错
tup0=(123,'nihao',93) #允许修改
print(id(tup0),tup0)

输出结果

2574152482384
2574153871680 (123, 'nihao', 93)

2.在创建元组的时候使用小括号,列表使用的是中括号。但在索引元素的时候使用的都是中括号。

tup0=(1,2,3,'forest',32)
print(tup0[0])

输出结果为 1

3.元素不允许删除,但可以使用del删除整个元组。

4.元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。

tup0=(2)
tup1=(2,)
print(type(tup0),type(tup1))

输出结果

<class 'int'> <class 'tuple'>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值