# -*- coding: utf-8 -*-
# @Time:
# @Auther: kongweixin
# @File:
"""
(*******重点*******)
列表的内置函数
方法     描述
append()   在列表的末尾添加一个元素
clear()        删除列表中的所有元素
copy()     返回列表的副本
count()        返回具有指定值的元素数量。
extend()   将列表元素(或任何可迭代的元素)添加到当前列表的末尾
index()    返回具有指定值的第一个元素的索引
insert()   在指定位置添加元素
pop()      删除指定位置的元素
remove()   删除具有指定值的项目
reverse()  颠倒列表的顺序
sort()     对列表进行排序
"""
#1,append()    在列表的末尾添加一个元素
# 定义和用法:append() 方法向列表末尾追加元素。
# 语法: list.append(element)
# 参数值
# 参数       描 述
# element  必需。任何类型(字符串、数字、对象等)的元素。
# 实例1:向 fruits 列表添加元素:
# fruits = ['apple', 'banana', 'cherry']
# fruits.append("orange")
# 实例2:向列表添加一个列表:
# a = ["apple", "banana", "cherry"]
# b = ["Porsche", "BMW", "Volvo"]
# a.append(b)
# clear()      删除列表中的所有元素
# 定义和用法: clear() 方法从列表中删除所有元素。
# 语法: list.clear()
# 参数值: 无参数。
# 实例: 从 fruits 列表删除所有元素:
# fruits = ['apple', 'banana', 'cherry', 'orange']
# fruits.clear()
# copy()       返回列表的副本
# 定义和用法:copy() 方法返回指定列表的副本。
# 语法: list.copy()
# 参数值:无参数。
#实例:拷贝 fruits 列表:
# fruits = ['apple', 'banana', 'cherry', 'orange']
# x = fruits.copy()
# print(id(x))   #x和fruits 内容是一样的列表但是id不同
# print(id(fruits))
"""
id(内存地址是不样的)
2271058809928
2271058809416
"""
# count()      返回具有指定值的元素数量。
# 定义和用法:count() 方法返回具有指定值的元素数量。
# 语法: list.count(value)
# 参数值
# 参数     描述
# value      必需。任何类型(字符串、数字、列表、元组等)。要搜索的值。
# 实例1: 返回 "cherry" 在 fruits 列表中出现的次数:
# fruits = ['apple', 'banana', 'cherry']
# x = fruits.count("cherry")
# print(x) #显示的是cherry出现的次数
# 实例2: 返回数值 9 在列表中出现的次数:
# points = [1, 4, 2, 9, 9,9,9,9,9,9,7, 8, 9, 3, 1]
# x = points.count(9)
# print(x)
# extend() 将列表元素(或任何可迭代的元素)添加到当前列表的末尾
# 定义和用法:extend() 方法将指定的列表元素(或任何可迭代的元素)添加到当前列表的末尾。
# 语法: list.extend(iterable)
# 参数值
# 参数        描述
# iterable 必需。任何可迭代对象(列表、集合、元组,字符串)。
# 实例1:把 cars 中的元素添加到 fruits 列表:
# fruits = ['apple', 'banana', 'cherry']
# cars = ['Porsche', 'BMW', 'Volvo']
# fruits.extend(cars)#把 cars 中的元素添加到 fruits 列表:
# print(fruits)
# print(cars)
# 实例2: 把元组添加到 fruits 列表:
# fruits = ['apple', 'banana', 'cherry']
# # points = (1, 4, 5, 9)
# points = "kcovspbjsbavhoibaip"
# fruits.extend(points)
# print(fruits)
# index()      返回具有指定值的第一个元素的索引
# 定义和用法: index() 方法返回指定值首次出现的位置。
# 语法: list.index(element)
# 参数值
# 参数       描述
# element  必需。任何类型(字符串、数字、列表等)。要搜索的值。
# 实例1:值 "cherry" 的位置是:
# fruits = ['apple', 'banana', 'cherry']
# x = fruits.index("cherry")
# print(x)
# 实例2: 值 32 的位置是:
# fruits = [4, 55, 64, 32, 16, 32]
# x = fruits.index(32)
# print(x)
# ****注意:index() 方法仅返回值的首次出现。****
# insert() 在指定位置添加元素
# 定义和用法: insert() 方法在指定位置插入指定的值。
# 语法: list.insert(position, element)
# 参数值
# 参数        描述
# position 必需。数字,指定在哪个位置插入值。
# element      必需。元素,任何类型(字符串、数字、对象等)。
# 实例1:把值 "orange" 作为第二个元素插入 fruits 列表:
# fruits = ['apple', 'banana', 'cherry']
# fruits.insert(1, "orange")
# print(fruits)
# pop()        删除指定位置的元素
# 定义和用法: pop() 删除指定位置的元素。
# 语法: list.pop(pos)
# 参数值
# 参数          描述
# pos        可选。数字,指定需删除元素的位置。默认值 -1,返回最后的项目。
# 实例1:返回被删除的元素:****pop() 方法返回被删除的值
# fruits = ['apple', 'banana', 'cherry']
# x = fruits.pop(1)
# print(x)
# remove() 删除具有指定值的项目
# 定义和用法: remove() 方法具有指定值的首个元素。
# 语法: list.remove(element)
# 参数值
# 参数      描述
# element    必需。需删除的任何类型(字符串、数字、列表等)的元素。
# 实例1: 删除 fruits 列表的 "banana" 元素:
# fruits = ['apple', 'banana', 'cherry']
# fruits.remove("banana")
# print(fruits)
# reverse()    颠倒列表的顺序
# 定义和用法: reverse() 方法反转元素的排序顺序。
# 语法: list.reverse()
# 参数值:无参数
# 实例1:反转 fruits 列表的顺序:
# fruits = ['apple', 'banana', 'cherry']
# fruits.reverse()
# print(fruits)
# sort()       对列表进行排序
# 定义和用法:
# 默认情况下,sort() 方法对列表进行升序排序。您还可以让函数来决定排序标准。
# 语法: list.sort(reverse=True|False, key=myFunc)
# 参数值
# 参数           描述
# reverse      可选。reverse=True 将对列表进行降序排序。默认是 reverse=False。
# key          可选。指定排序标准的函数。
#****实例中函数看不懂可以不看!!!
# 实例1:以字母顺序对列表进行排序:
# cars = ['Porsche', 'BMW', 'Volvo']
# cars.sort()
# print(cars)
# 实例2:对列表进行降序排序:
# cars = ['Porsche', 'BMW', 'Volvo']
# cars.sort(reverse=True)
# print(cars)
# 实例3:按照值的长度对列表进行排序:
# 返回值的长度的函数:
# def myFunc(e):
#   return len(e)   #按长度进行排序
# cars = ['Porsche', 'Audi', 'BMW', 'Volvo']
# cars.sort(key=myFunc)
# print(cars)
# 实例 5:根据字典的 "year" 值对字典列表进行排序:
# 返回 'year' 值的函数:
# def myFunc(e):
#   return e['year']  #按时间顺序进行的
#
# cars = [
#   {'car': 'Porsche', 'year': 1963},
#   {'car': 'Audi', 'year': 2010},
#   {'car': 'BMW', 'year': 2019},
#   {'car': 'Volvo', 'year': 2013}
# ]
#
# cars.sort(key=myFunc)
# print(cars)
# 实例 4: 按照值的长度对列表进行降序排序:
# 返回值的长度的函数:
# def myFunc(e):
#   return len(e)
#
# cars = ['Porsche', 'Audi', 'BMW', 'Volvo']
# cars.sort(reverse=True, key=myFunc)
# print(cars)