认识列表
1.什么是列表(list)
列表是python内置的可变的并且有序的容器类数据类型(序列)
有序:说明可以起通过下标获取元素
可变:指的是列表中的元素个数、元素的值以及元素的位置可变(支持增删改)
2.列表的字面量:中括号括起来,里面有多个元素,元素之间用逗号隔开
[元素1,元素2,元素3,.....]
元素:可以是任何数据类型:同一个列表,不同元素的类型可以不一样
list1 = [10, 20, 'abc', True, [1, 2]]
print(list1)
# 空列表
list2 = []
print(list2, type(list2))
列表的增删改查
1.查(获取列表的元素)
a.获取单个元素
列表[下标] -- 获取指定下标对应的元素
列表一旦确定,列表中每个的元素都对应一个下标
下标范围:0 ~ 列表长度-1 或者 -1~-列表长度
下标不能越界
flims = ['战狼2', '肖生克的救赎', '变形金刚', '回到未来', '毒液', '红海行动', ]
print(flims[2], flims[-1])
b.获取多个元素(切片) -- 结果还是列表
列表[开始下标:结束下标:步长]
列表[开始下标:结束下标]
c.遍历列表(将列表中的元素一个一个取出来)
for 变量 in 列表 -- 用变量获取列表中的元素
names = [1,2,3,4]
# 方法一:直接获取列表元素
for item in names:
print(item)
# 方法二:
for index in range(len(names)):
print(names[index])
2.(增添加元素)
a.列表.append(元素) -- 指定列表的最后添加指定的元素
flims = ['战狼2', '肖生克的救赎', '变形金刚', '回到未来', '毒液', '红海行动', ]
flims.append('侠岚')
print(flims)
练习:录入学生的成绩,保存到一个列表中。(录入的时候)
scores = []
score = (input('输入成绩'))
while score != 'end':
scores.append(int(score))
score = (input('输入成绩'))
print('输入完成', scores)
b.列表.insert(下标,元素) -- 在指定的下标插入指定的元素
films = ['海贼王', '火影忍者', '进击的巨人', '刀剑神域', '全职高手']
films.insert(2, '妖精的尾巴')
print(films, films[2])
films.insert(0, '死神')
print(films)
练习有一个序列的数字[1,7,34,67,100]。
输入任意一个数字,插入到序列中,要求插入后数列还是从小到大排序的。
list1 = [1, 7, 34, 67, 100]
num1 = int(input('请输入数字'))
for index in range(5):
if list1[index] >= num1:
list1.insert(index, num1)
break
else:
list1.insert(num1)
print(list1)
3.删(删除列表元素)
a.del 列表[下标] -- 删除列表中指定下标对应的元素
del -- 关键字,可以删除任何内容
films = ['海贼王', '火影忍者', '进击的巨人', '刀剑神域', '全职高手']
del films[-2]
print(films)
b.列表.remove(元素)-- 删除指定列表中指定的元素
注意:如果指定元素在列表中有多个,只删除最前面那一个
films = ['海贼王', '火影忍者', '进击的巨人', '刀剑神域', '全职高手']
films.remove('进击的巨人')
print(films)
c.
列表.pop() -- 取出列表中最后一个
列表.pop(下标) -- 取出列表中指定下标对应的元素
nums =[2, 34, 56, 7, 8, 9, 0]
del_num = names.pop() #将最后一个元素取出,并保存到del_num中
print(nums)
print(del_num)
del_num = names.pop(1)
print(nums)
print(del_num)
练习:有一个列表,列表中有数字和字符串两种类型的元素。
要求将列表中的字符串全部放到另一个列表中
例如:list1 = [1, 'ab', 303, 'hello', 89, 9, 90]
list1 = [1, 'ab', 303, 'hello', 89, 9, 90]
index = 0
list2 = []
while index < len(list1):
if isinstance(list1[index], str):
item = list1.pop(index)
list2.append(item)
continue
index += 1
print(list1)
print(list2)
4.改(修改列表元素的值)
列表[下标] = 新值 -- 将列表中指定下标对应的元素改成指定的值
list1 = [1, 2, 'abc', 4]
list1[2] = 3
print(list1)
列表的相关运算
1 +
"""
列表1+列表2 -- 使用两个列表中的元素产生一个新的列表
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
print(list1 + list2)
print(list1, list2)
2 *
列表 * n(正整数) -- 将列表中的元素重复n次,产生一个新的列表
list1 = [1, 2, 3]
print(list1 * 2)
3. in和not in
元素 in 列表 -- 判断指定元素是否在指定列表中
元素 not in 列表 -- 判断指定元素是否不在指定列表中
names = ['小明', '小花', '路飞']
if '路飞' in names:
print('恭喜,获奖了!')
else:
print('很遗憾')
4.len
len(列表) -- 获取列表中元素的个数
5. list
list(数据) -- 将其他的数据转成列表
注意:这儿的数据,只能是序列(所有序列都能转换成列表--将序列中的元素作为列表元素)
str1 = 'hello'
print(list(str1))
print(list(range(0, 20)))
6. max和min
max(列表) -- 获取列表中元素的最大值
min(列表)-- 获取列表中元素的最小值
注意:列表有要求:a.列表中元素的类型一样 b.元素对应的类型支持比较运算
print(max([1, 25, 30, 90]))
print(min([1, 25, 30, 90]))
print(max(['a', 'abc', 'xsa', '**xx']))