列表相关方法
# sum、max、min、count
numlist = [12, 13, 14, 15, 16, 90]
# sum:计算数字列表中所有元素的和
print(sum(numlist))
# max\min:求数字列表中最大或最小值
numlist = [12, 13, 14, 15, 16, 90]
print(max(numlist))
print(min(numlist))
# count:统计某个元素在列表中出现的次数
numlist = [12, 13, 14, 15, 16, 90]
print(numlist.count(1))
numList1 = [10, 30, 0, 100, 5, -100]
# sort:默认将列表从小到大排序,直接修改列表本身,sort返回值为空值
print('sort', numList1.sort())
print('sort', numList1)
numList1 = [10, 30, 0, 100, 5, -100]
# sorted:默认将列表从小到大排序,sorted不修改列表本身,返回排好序的列表结果
print('sorted', sorted(numList1))
print('sorted', numList1)
# reverse:将列表倒序输出,直接修改列表本身,返回值是None
numList1 = [10, 30, 0, 100, 5, -100]
print('reverse', numList1.reverse())
print('reverse', numList1)
# 切片将列表倒序
numList1 = [10, 30, 0, 100, 5, -100]
print(numList1[::-1])
# ---------------------------------------------------------
list1 = ['abcd', 1, 2, 3, 4, 1]
# index:查找某个元素出现的位置,从左向右找,找到此元素第一次出现的位置后直接停止查找
print(list1.index(1))
# index还可以直接执行从哪个位置开始查找
print(list1.index(1, list1.index(1) + 1))
# 思考:如果从list1中查找第二个1出现的位置:
# 1.先查找第一个1的位置
numIndex = list1.index(1)
# 2.将没有第一个1的列表切出来
list2 = list1[numIndex + 1:]
# 3.找新列表中的第一个1(相当于原列表中的第二个1),再将去掉的部分长度补回来
print(list2.index(1) + len(list1[:numIndex + 1]))
# 练习:1.获取列表中出现次数最多的元素。
# 例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3],打印[3];nums = [1,2,2,1,3],打印[1,2]
# nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
nums = [1, 2, 2, 1, 3]
# numCount判断次数
numCount = 0
# list1存放出现次数最大的元素
list1 = []
# 对所有元素遍历
for i in nums:
# 判断此元素的最大次数是不是大于原来的最大次数
# if分支判断列表中单一元素出现次数最大
if nums.count(i) > numCount:
# 条件成立重新给numCount赋值
numCount = nums.count(i)
# 清空列表再添加元素
list1.clear()
list1.append(i)
# elif分支判断多个元素同时出现次数最大
elif nums.count(i) == numCount:
# 将所有情况考虑完在判断本元素是否添加过
for x in list1:
if i == x:
break
else:
list1.append(i)
print(list1)
列表补充
# 一、成员运算:in、not in
# 判断某个元素在不在容器中
list1 = [1, 2, 3, 'abc', [1, 2, 3]]
print(1 in list1)
print([3] not in list1)
# 练习:1.获取列表中出现次数最多的元素。
# 例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3],打印[3];nums = [1,2,2,1,3],打印[1,2]
# nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
nums = [1, 2, 2, 1, 3]
# numCount判断次数
numCount = 0
# list1存放出现次数最大的元素
list1 = []
# 对所有元素遍历
for i in nums:
# 判断此元素的最大次数是不是大于原来的最大次数
# if分支判断列表中单一元素出现次数最大
if nums.count(i) > numCount:
# 条件成立重新给numCount赋值
numCount = nums.count(i)
# 清空列表再添加元素
list1.clear()
list1.append(i)
# elif分支判断多个元素同时出现次数最大
elif nums.count(i) == numCount:
# 将所有情况考虑完在判断本元素是否添加过
for x in list1:
if i == x:
break
else:
list1.append(i)
print(list1)
# 二、列表的比较大小
# 有序容器比较大小要求:
"""
a.两个容器的数据类型保持一致。
b.比较的是第一对不相同元素的大小,并且这两个元素的数据类型要一致
c.两个有序容器找不到第一对不相同元素,谁长谁大
"""
list2 = [1, 2, 4, [1, 2, 4]]
list3 = [1, 2, 4, [1, 2, 3]]
print(list3 > list2)
# 练习:
print([3] > [1, 2, 3]) # True
print([123] > [213]) # False
print([3] > [3, 2, 1]) # False
如何删除列表中重复元素
name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']
# 结果:['张三','李四','王五']
count = 0
for i in name_list:
count += 1
if name_list.count(i) > 1:
# print(f'{i}是重复的')
name_list.remove(i)
print(name_list)
print(count)
# 1.间接删除
print('----间接删除----')
name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']
names = []
for i in name_list:
if i not in names:
names.append(i)
print(names)
# 2.控制下标
print('----控制下标----')
name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']
index_ = 0
while index_ < len(name_list):
if name_list.count(name_list[index_]) > 1:
del name_list[index_]
else:
index_ += 1
print(name_list)
# 3.倒着删除
print('----倒着删除----')
name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']
for i in range(len(name_list) - 1, -1, -1):
if name_list.count(name_list[i]) > 1:
del name_list[i]
print(name_list)
列表推导式
# 列表推导式
# 一、作用:在创建列表时同时向列表中添加元素。
# 二、意义:
# 1.简化代码,提高代码的可读性。
# 2.在某些场景下可以使用列表推导式代替append。
# 三、性能比较:列表推导式性能 > append
# 四、语法一:[表达式 for 变量 in 容器]
# 表达式就是向列表中添加的元素
numList = []
for i in range(1, 101):
numList.append(i)
print(numList)
numList_2 = [i for i in range(1, 101)]
print(numList_2)
# 语法二:[表达式 for 变量 in 容器 if 条件]
# for循环执行一次,如果条件成立,表达式的结果添加到列表中
numList3 = [i for i in range(0, 101) if i % 5 == 0]
print(numList3)
# 语法三:[表达式 for 变量1 in 容器1 for 变量2 in 容器2]
# 第一个for循环执行1次,第二个for循环执行N次,第二个for循环每执行一次,
# 表达式的结果就向列表中添加一次。
list1 = [f'{index} * {column} = {index * column}' for index in range(1, 10) for column in range(1, index + 1)]
print(list1)