#一、sum、max、min、count
##1、sum
计算数字列表中所有元素的和
numlist1 = [12, 13, 14, 15, 16, 90]
print(sum(numlist1))
##2、max\min
求数字列表中最大或最少值
numlist = [12, 13, 14, 15, 16, 90]
print(max(numlist))
print(min(numlist))
##3、 conut
统计某个元素在列表中出现的次数
numlist1 = [12, 13, 14, 15, 16, 90]
print(numlist1.count(12))
##4、sort
默认将列表从小到大排序,直接修改列表本身,sort返回值为空
numlist = [10, 30, 0, 100, 5, -90]
print('sort', numlist.sort())
print('sort', numlist)
##5、sorted
默认将列表从小到大排序,sorted不接修改列表本身,返回值修改好的列表结果。
numList1 = [10, 30, 0, 100, 5, -90]
print('sorted', numList1.sort())
print('sorted', numList1)
6、reverse
将列表倒序输出,直接修改列表本身,返回值是None
numList1 = [10, 30, 0, 100, 5, -90]
print('revere', numList1.reverse())
print('reverse', numList1)
二、切片将列表倒序
numList1 = [10, 30, 0, 100, 5, -90]
print(numList1[::-1])
list1 = ['abcd', 1, 2, 3, 4, 1]
##1、index
查找某个元素出现的位置,从左向右找,找到此元素第一次出现的位置后直接停止查找
numList1 = [10, 30, 0, 100, 5, -90]
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]))
三、成员运算: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 and i not in list1:
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
五、删除重复元素
1.间接删除
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)