Python列表和元组

list和tuple都是一个可以放置任意数据类型的有序集合,都是既可以存放数字、字符串、对象等。

nums = [[1,2,3],['s','ff'],['34',3,5]]
tp = ((23,4,'f'),45,'d',('dd',4,'ff'))

如果数据发生变更的可能性不大,就用元组存储,如果数据是需要频繁的进行数据的修改增加,就使用列表

元组是固定且不可改变的。虽然它们不支持改变大小,但是我们可以将两个元组合并成一个新元组。

>>> t1 = (1, 2, 3, 4)
>>> t2 = (5, 6, 7, 8)
>>> t1 + t2
(1, 2, 3, 4, 5, 6, 7, 8)

相同点

list和tuple都支持负索引、切片操作,并且都可以随意嵌套

不同点

列表

列表是动态的,长度大小不固定,可以随意的增加、删除、修改元素:
1.可以增加列表内容 append

2.可以统计某个列表段在整个列表中出现的次数 count

3.可以插入一个字符串,并把整个字符串的每个字母拆分当作一个列表段追加到列表当中 extend

4.可以查询某个列表段在整个列表的位置 index。注意:在列表当中,假如某两个列表段相同,不管是使用index还是remove都是统计的最靠前的列表段。

5.可以在指定位置插入一个列表段 insert

6.可以删除列表的最后一个列表段 pop

7.可以删除指定列表中的某个列表段 remove。注意:在列表当中,假如某两个列表段相同,不管是使用index还是remove都是统计的最靠前的列表段。

8.可以正向反向排序 reverse

9.可以按字母或数字排序 sort

10.定义列表时候使用中括号"[]"

#定义列表
>>> name_list = ['sean','tom','jack','Angelia','Daisy','jack'] 
#查看定义的列表
>>> name_list
['sean', 'tom', 'jack', 'Angelia', 'Daisy', 'jack']
#增加david列表段
>>> name_list.append('david')
>>> name_list
['sean', 'tom', 'jack', 'Angelia', 'Daisy', 'jack', 'david']
#统计david列表段出现次数
>>> name_list.count('david')
1
>>> name_list.count('jack')
2
#使用extend向列表中增加列表段
>>> name_list.extend('Hello,My name is sean')
>>> name_list
['sean', 'tom', 'jack', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a', 'n']
#查看列表段所在的索引号,注意这里统计的jack为第一个jack id号
>>> name_list.index('jack')
2
>>> name_list.index('tom')
1
#向索引号为2的地方插入Adam
>>> name_list.insert(2,'Adam')
>>> name_list
['sean', 'tom', 'Adam', 'jack', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a', 'n']
#删除最后一个列表段
>>> name_list.pop()
'n'
>>> name_list
['sean', 'tom', 'Adam', 'jack', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a']
#删除指定列表段,注意这里删除的是第一个jack
>>> name_list.remove('jack')
>>> name_list
['sean', 'tom', 'Adam', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a']
#对整个列表进行倒序
>>> name_list.reverse()
>>> name_list
['a', 'e', 's', ' ', 's', 'i', ' ', 'e', 'm', 'a', 'n', ' ', 'y', 'M', ',', 'o', 'l', 'l', 'e', 'H', 'david', 'jack', 'Daisy', 'Angelia', 'Adam', 'tom', 'sean']
#对整个列表进行倒序
>>> name_list.reverse()
>>> name_list
['sean', 'tom', 'Adam', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a']
#对整个列表进行列表段的首字母进行排序
>>> name_list.sort()
>>> name_list
[' ', ' ', ' ', ',', 'Adam', 'Angelia', 'Daisy', 'H', 'M', 'a', 'a', 'david', 'e', 'e', 'e', 'i', 'jack', 'l', 'l', 'm', 'n', 'o', 's', 's', 'sean', 'tom', 'y']
>>>

元组

元组是静态的,长度在初始化的时候就已经确定不能更改,更无法增加、删除、修改元素。只有两个自带的方法,一个是统计元素出现的次数count,一个是查询元素的索引index。定义元组时候使用小括号"()"

#定义元组name_tuple
>>> name_tuple = ('xiaoming','xiaohong','xiaoli','xiaozhang','xiaoming')
>>> name_tuple
('xiaoming', 'xiaohong', 'xiaoli', 'xiaozhang', 'xiaoming')
#统计xiaoming、xiaohong在元组内出现的次数
>>> name_tuple.count('xiaoming')
2
>>> name_tuple.count('xiaohong')
1
#查询xiaoming、xiaohong、xiaozhang在元组内的id号
>>> name_tuple.index('xiaoming')
0
>>> name_tuple.index('xiaohong')
1
>>> name_tuple.index('xiaozhang')
3
>>> 
#尝试增加一个元组单元
>>> name_tuple.append('xiaowang')
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
name_tuple.append('xiaowang')
AttributeError: 'tuple' object has no attribute 'append'
>>>

元组的元素是不可变的,元组的元素的元素是可变的

>>> tuple_A = (1,2,{'k1':'v1'})
>>> for i in tuple_A:
... print i
... 
1
2
{'k1': 'v1'}
#更改元素
>>> tuple_A[2]['k1'] = 'v2'
>>> for i in tuple_A:
... print i
... 
1
2
{'k1': 'v2'}
>>>

参考文献
Python列表和元组的使用方法及区别 详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值