列表
- 普通列表
member = ['p','y','t','h','o','n']
member
# ['p', 'y', 't', 'h', 'o', 'n']
- 混合列表
mix = [1,'小甲鱼',3.24,[1,2,3]]
mix
# [1, '小甲鱼', 3.24, [1, 2, 3]]
- 空列表
empty = []
empty
# []
向列表中添加元素
num = [1,2,3,4]
num.append(5)
num
# [1, 2, 3, 4, 5]
len(num)
# 5
用一个列表来扩展另一个列表
member = [1,2,3]
member.extend([4,5])
member
# [1, 2, 3, 4, 5]
插入
num = [1,2,3]
num.insert(0, 0)
num
# [0, 1, 2, 3]
len(num)
# 4
随机访问列表中的元素
num = [1,2,3,4]
num[3]
# 4
交换列表中两个元素
num = [1,2,3,4]
num[3]
# 4
temp = num[0]
num[0] = num[1]
num[1] = temp
num
# [2, 1, 3, 4]
删除元素
- remove()
- del
- pop()
num = [1,2,3,4,5]
num.remove(1)
num
# [2, 3, 4, 5]
del num[3]
num
# [2, 3, 4]
del num #将整个列表从内存中移除
num.pop()
# 4
temp = num.pop()
temp
# 3
列表分片
num = [1,2,3,4]
num[1:3] #分片[1,3)
# [2, 3]
num
# [1, 2, 3, 4]
num[:2] #分片[0,2)
# [1, 2]
num[1:] #分片[1,末尾)
# [2, 3, 4]
num[:] #得到列表的拷贝
# [1, 2, 3, 4]
列表操作符
list1 = [123]
list2 = [234]
list1 > list2
# False
list1 = [123, 456]
list2 = [234, 123]
list1 > list2 #先比较第一个元素,如果相等,再比较第二个
# False
list3 = [123, 456]
list1 < list2 and list1 == list3
# True
list4 = list1 + list2 #连接
list4
# [123, 456, 234, 123]
list1 + "小甲鱼" #左右的类型要一致
Traceback (most recent call last):
File "<pyshell#107>", line 1, in <module>
list1 + "小甲鱼"
TypeError: can only concatenate list (not "str") to list
list3
# [123, 456]
list3 * 3
# [123, 456, 123, 456, 123, 456]
list3 *= 3
list3
# [123, 456, 123, 456, 123, 456]
123 in list3
# True
'小甲鱼' not in list3
# True
list5 = [123, ['小甲鱼','牡丹'], 456]
'小甲鱼' in list5
# False
'小甲鱼' in list5[1]
# True
list5[1][1] #类似二维数组
# '牡丹'
列表常用的内置函数
list3 = [123, 456, 123, 456, 123, 456]
list3.count(123) #统计123在列表中出现的次数
# 3
list3.index(456)
# 1
list3.index(456,3,5) #返回从[3,5)第一次出现456的索引
# 3
list3.reverse() #倒序
list3
# [456, 123, 456, 123, 456, 123]
list6 = [1, 4,6,2,87,3,6]
list6.sort() #排序,默认升序
list6
# [1, 2, 3, 4, 6, 6, 87]
list6.sort(reverse = True)
list6
# [87, 6, 6, 4, 3, 2, 1]
list7 = list6[:] #拷贝
list7
# [87, 6, 6, 4, 3, 2, 1]
list8 = list6 #list8和list6指向同一地址
list8
# [87, 6, 6, 4, 3, 2, 1]
list6.sort()
list6
# [1, 2, 3, 4, 6, 6, 87]
list7
# [87, 6, 6, 4, 3, 2, 1]
list8
# [1, 2, 3, 4, 6, 6, 87]
元组
元组是不可改变的,跟java的字符串类似
tuple1 = (1,2,3,4,5,6)
tuple1
# (1, 2, 3, 4, 5, 6)
tuple1[1] #元组的随机访问和列表一样
# 2
tuple1[3:] #元组的分片和列表一样
# (4, 5, 6)
tuple1[:3]
# (1, 2, 3)
tuple2 = tuple1[:] #拷贝
tuple2
# (1, 2, 3, 4, 5, 6)
tuple1[2] = 10 #元组是不可改变的
Traceback (most recent call last):
File "<pyshell#160>", line 1, in <module>
tuple1[2] = 10
TypeError: 'tuple' object does not support item assignment
temp = (1)
temp
# 1
type(temp)
# <class 'int'>
temp2 = 1,2,4 #元组的标志是逗号,列表的标志是[]
temp2
# (1, 2, 4)
type(temp2)
# <class 'tuple'>
temp = () #创建空的元组
type(temp)
# <class 'tuple'>
temp = (2, )
type(temp)
# <class 'tuple'>
temp = 1,
type(temp)
# <class 'tuple'>
8 * (8)
# 64
8 * (8,)
# (8, 8, 8, 8, 8, 8, 8, 8)
元组的更新和删除
temp = ('小甲鱼', "黑衣人", "小鱼儿")
temp = temp[:1] + ("哈哈",) + temp[1:] #更新
temp
('小甲鱼', '哈哈', '黑衣人', '小鱼儿')
temp = temp[:1]+temp[2:] #删除
temp
('小甲鱼', '黑衣人', '小鱼儿')
可以运用在元组上的操作符
- in 和 not in
- 逻辑操作符
- +和*
- 比较操作符