列表
序列通用方法
- 加号( + )
两种相同类型的序列相加
a = [1,2,3,4]
b = [5,6,7,8,9]
print(a + b)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
- 乘号( * )
使用数字 n 乘以一个序列会生成一个新的序列,新序列的内容为原来序列被重复 n 次的结果
a = [1,2,3,4]
print(a*3)
# [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
- in 和 not in
使用 in 关键字检查某个元素是否是序列的成员,即检查某个元素是否包含在该序列中(not in 反之)
room = ['凯凯', '浩浩', '狮子狗', '亮亮', '建建', '日古', '肥龙']
x = '冰冰'
result = x in room
print(result)
# False
- len()
计算序列的长度,即返回序列包含多少个元素
room = ['凯凯', '浩浩', '狮子狗', '亮亮', '建建', '日古', '肥龙']
length = len(room)
print(length)
# 7
- max() 和 min()
使用 max() 函数返回序列中的最大元素;使用 min() 函数返回序列中的最小元素
x = [1,2,3,4,8,9,52,7,65,35,98,70]
print('最大的值是:',max(x))
print('最小的值是:',min(x))
# 最大的值是: 98
# 最小的值是: 1
- list.index()
返回指定元素在列表中首次出现的位置(即索引) list.index(value,start,end)
# 出现重复元素的情况
x = [1,2,8,5,4,3,2,9]
print(x.index(2))
print(x.index(2,2,8))
# 1
# 6
- list.count()
计算某个元素在序列中的个数
x = [1,2,2,4,4,4,5,7,89]
print(x.count(4))
# 3
修改列表
- 下表索引值
room = ['凯凯', '浩浩', '狮子狗', '亮亮', '建建', '日古', '肥龙']
room[2] = '凯凯'
print(room)
# ['凯凯', '浩浩', '凯凯', '亮亮', '建建', '日古', '肥龙']
- del 关键字
删除列表
# del list.name
room = ['凯凯', '浩浩', '狮子狗', '亮亮', '建建', '日古', '肥龙']
del room
print(room)
# NameError: name 'room' is not defined
- 切片 + 步长
修改序列的元素,
room = ['凯凯', '浩浩', '狮子狗', '亮亮', '建建', '日古', '肥龙']
room[1:1] = ['冰冰'] # 注意这里是一个列表,添加的是序列的元素
print(room)
# ['凯凯', '冰冰', '浩浩', '狮子狗', '亮亮', '建建', '日古', '肥龙']
列表的方法
- append()
在列表的尾部添加一个元素
x= []
x.append(1)
print(x)
# [1]
- insert()
向指定位置插入一个元素
list.insert(index,value) same as list[index:index]=[value]
x = [1,2,3,4,5,6,7,8,9]
x.insert(5,50)
print(x)
# [1, 2, 3, 4, 5, 50, 6, 7, 8, 9]
- extend()
listname.extend(seq)
将 seq 的内容追加到 listname 的后面
x = [1,2,3,4,5,6,7,8,9]
y = [10]
x.extend(y)
print(x)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- pop() 有返回值
删除指定位置的元素
room = ['凯凯', '浩浩', '狮子狗', '亮亮', '建建', '日古', '肥龙']
x = room.pop(2)
print(x)
print(room)
# 狮子狗
['凯凯', '浩浩', '亮亮', '建建', '日古', '肥龙']
- remove() 没有返回值
删除首次出现的指定元素
x = [1,2,2,2,3,4,5,6,7,8,9]
print(x)
x.remove(2)
print(x)
#[1, 2, 2, 2, 3, 4, 5, 6, 7, 8, 9]
#[1, 2, 2, 3, 4, 5, 6, 7, 8, 9]
# 需要注意的是,这里只删除了第一个 2
- clear()
清空列表
x = [1,2,2,2,3,4,5,6,7,8,9]
x.clear()
print(x)
# []
- reverse()
对列表进行翻转
x = [1,2,3,4,5,6,7,8,9]
x.reverse()
print(x)
# [9, 8, 7, 6, 5, 4, 3, 2, 1]
- sort(reverse = True) 降序 默认升序
x = [1,5,3,4,2,6,8,7,9]
x.sort()
print(x)
x.sort(reverse=True)
print(x)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
# [9, 8, 7, 6, 5, 4, 3, 2, 1]
遍历列表
- for 循环的实现原理
直接使用 for 循环列表,只能输出元素的值
for item in listname:
# 输出 item
- range() 函数
range(start:end:step)
# 类似切片,左开右闭
x = range(0,11,2)
print(list(x))
# [0, 2, 4, 6, 8, 10]
例子(老师的抽奖作业)
给用户9次机会猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对
# 如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对
# 真实 抽奖!!
print('你有9次机会猜 1 —10 之间的数' )
print()
bingo = list(range(1,11))
i = 0
while i < 9:
x = int(input('请输入您猜的数:'))
if x in bingo:
bingo.remove(x)
if i < 8:
print(f'运气不好,您猜错了,您还有 {8-i} 次机会')
elif i == 8:
print(f'对不起,您猜错了,正确答案是 {bingo[0]}')
i += 1