Py001_02_02Python列表

列表

一个数据的集合,集合里可以放置任何数据类型,可对集合方便的进行增删改查操作

  • 创建
  • 查询
  • 切片
  • 增加
  • 修改
  • 删除
  • 循环
  • 排序

创建

1
2
3
4
5
6
7
# 方法一
a1 = [] # 定义空列表
a2 = [1,2,3,4] # 存4个值 索引0-3
a3 = [1,[2,3,4]] # 嵌套列表

# 方法二(不推荐)
b1 = list() # 空列表

查询

1
2
3
4
5
6
a = ['a','b','c','d','e','a','a',1,2]

a[2] # 通过索引 'c'
a[-1] # 通过索引从右开始取值 2
a.index('b') # 查找元素(从左往右)对应的索引 1
a.count('a') # 返回元素的个数 3

切片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = ['a','b','c','d','e','f','aa','bb','cc']

# 取前三个
a[0:3] # 包头不包尾

# 取最后四个
a[-1:-4] # []
a[-4:] # ['f','aa','bb','cc']

# 取前三
a[:3]

# 取所有
a[:]

# 跳指定步子取值
a[::2]

增加

1
2
3
4
5
6
7
a = [1,2,3,4,5]
a.append('peiqi')
print(a) # [1,2,3,4,5,'peiqi']

# 指定位置插入
a.insert(0,'a')
print(a) # ['a',1,2,3,4,5,'peiqi']

修改

1
2
3
a = [1,2,3,4,5]
a[2] = 'a'
print(a) # [1,2,'a',4,5]

删除

  • pop
  • remove
  • del
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = [1,2,3,4,5,6,7,8,9,10]
a.pop() # 删除最后一个
print(a) # [1,2,3,4,5,6,7,8,9]


b = [1,2,3,4,'a',4,'b']
b.remove(4) # 删除指定元素 从左往右匹配的第一个
print(b) # [1,2,3,'a',4,'b']

c = [1,2,3,4,5,6,7,8,9]
del c[2]
print(c) # [1,2,4,5,6,7,8,9]

del c[0:3] # 切片删

del c # 删除整个数组
print(c) # 报错

循环

1
2
3
a = [1,2,3,4,5,5]
for i in a:
print(i)

排序

  • sort
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
n = ['a','e','b','c',34,23]
n.sort() # 报错 不支持 int和 str一起排


m = ['a','e','A','b','c','z','h']
m.sort() # ['A','a','b','c','e','h','z']
m.insert(3,'#')
m.insert(3,'*')
m.insert(1,'!')
m.sort() # ['!','#','*','A','a','b','c','e','h','z']
# 字符按ascⅡ排序

m.reverse() # 翻转


# 列表拼接
[1,2,3] + [4,5,6] ==> [1,2,3,4,5,6]

# n.extent(n2)

a = [1,2,3]
a.clear() # []

b = [1,2,3]
c = b.copy() # b 和 c是完全独立的

练习

  1. 将一个列表的索引打印出来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
a = ['a','b','c']

count = 0;
for i in a:
print(i,count)
count += 1

方法二 enumerate 枚举

for i in enumerate(a):
print(i)

'''
{0:'a'}
{1:'b'}
{2:'c'}
'''

for index,value in enumerate(a):
print(index,value)

元组

特性

  • 不可变
  • 元组本身不可变,如果元组里还包含其他可变元素(嵌套列表),这些元素可以变

功能

  • index
  • count
  • 切片

使用场景

  • 显示的告诉别人,数据不可改变
  • 数据库连接配置信息