心就是AI

共知心是水,安见我非鱼

0%

Python学习-容器list和tuple

容器是一种可以把多个元素放在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in等关键字判断某个元素是否包含在容器中。Python中,容器包括列表(list)、元组(tuple)、字典(dict)、集合(set)等。

list容器

列表(list)是一种有序的容器,放入list中的元素,将会按照一定顺序排列

list的基本使用

1
2
3
4
5
6
7
8
scores = [56, 66, 35, 82, 99, 100]
names = ['Bill', 'Niki', 'Linda', 'Kimi', 'Don', 'Silvia']

#python是动态语言,list或要放入任意类型数据
anyList = ['Kimi', 66, 'Linda', True, 33.4, 'False']

#可以使用print打印
print(anyList) # ===> ['Kimi', 66, 'Linda', True, 33.4, 'False']

list的访问

1
2
3
4
5
6
7
8
9
10
11
#按顺序访问
for item in anyList:
print(item)

#按索引访问
print(anyList[0]) # ===> Kimi
print(anyList[1]) # ===> 66

#倒序访问
print(anyList[-1]) # ===> False
print(anyList[-2]) # ===> 33.4

list切片

1
2
3
4
5
6
7
8
9
10
11
print(anyList[1:3]) # ===> [66, 'Linda']
print(anyList[1:-1]) # ===> [66, 'Linda', True, 33.4]
print(anyList[-3:-1]) # ===> [True, 33.4]

#切片还可以指定步长
print(anyList[0:5:2]) # ===> ['Kimi', 'Linda', 33.4]
print(anyList[1:5:2]) # ===> [66, True]

#步长还可以是负数
print(anyList[-1:-6:-1]) # ===> ['False', 33.4, True, 'Linda', 66]
print(anyList[-1:-6:-2]) # ===> ['False', True, 66]

list添加元素

使用append()在列表末尾添加元素

1
2
names.append('Nancy')
print(names) # ===> ['Bill', 'Niki', 'Linda', 'Kimi', 'Don', 'Silvia', 'Nancy']

使用insert()在指定位置添加元素

1
2
names.insert(2, 'Carol')
print(names) # ===> ['Bill', 'Niki', 'Carol', 'Linda', 'Kimi', 'Don', 'Silvia', 'Nancy']

list删除元素

1
2
3
4
5
6
7
8
9
#使用pop()删除最后一个元素
n = names.pop()
print(n) # ===> Nancy
print(names) # ===> ['Bill', 'Niki', 'Carol', 'Linda', 'Kimi', 'Don', 'Silvia']

#删除指定位置的元素
n = names.pop(3)
print(n) # ===> Linda
print(names) ===> ['Bill', 'Niki', 'Carol', 'Kimi', 'Don', 'Silvia']

tuple容器

元组(tuple)和list一样,也是一个有序容器,在元组中,同样可以包含0个或者多个元素,并且也支持索引访问、切片等操作。
tuple和list不一样的是,tuple是固定不变的,一旦变成tuple,tuple中的每一个元素都不可被改变,同时也不能再往tuple中添加数据。
在运行上tuple的性能是list的数倍。

tuple的基本用法

1
2
3
4
5
6
7
8
9
10
11
12
namesTuple = ('Alice', 'Bob', 'Candy', 'David', 'Ema')
print(namesTuple) # ===> ('Alice', 'Bob', 'Candy', 'David', 'Ema')

#顺序与倒序访问
print(namesTuple[0]) # ===> Alice
print(namesTuple[1]) # ===> Bob
print(namesTuple[-1]) # ===> Ema

#切片
print(namesTuple[-4:-1]) # ===> ('Bob', 'Candy', 'David')
print(namesTuple[-4:-1:2]) # ===> ('Bob', 'David')
print(namesTuple[-1:-5:-2]) # ===> ('Ema', 'Candy')

list转tuple

1
2
3
anyList = ['Kimi', 66, 'Linda', True, 33.4, 'False']
anyTuple = tuple(anyList)
print(anyTuple) # ===> ('Kimi', 66, 'Linda', True, 33.4, 'False')

tuple的一些其它方法

统计tuple中某个元素出现了多少次

1
2
3
tp = (1,2,3,6,4,2,3,2,1,2,9)
print(tp.count(1)) # ===> 2
print(tp.count(2)) # ===> 4

使用index()方法获取指定元素的下标,如果指定元素不存在,则报错

1
2
print(tp.index(6)) # ===> 3
>>> print(tp.index(2)) # ===> 1 #多次出现,返回第一次出现的位置

创建单个元素的tuple

1
2
tp = (1,)
print(tp) # ===> (1,)

对于多个元素的tuple,最后加不加这个逗号,效果是一样的

1
2
tp = (1, 2, 3,)
print(tp) # ===> (1, 2, 3)