"""
knowledge:list的使用
author:zhy
update:20230314
"""
# 1. 创建list
# 1.1 两种创建方式
# 空list
# list1 = []
# list2 = list()
# 注意不要采用赋值方式给空list赋值
# list1[0] = 'a' # 错误
# 包含各种元素的list
# list1 = ["hello", "python", "world"]
# list2 = ["china", 100, False]
# 2. list的大小
# m = len(list1)
# print(m)
# 3. 访问列表元素
# list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# print(list1[0])
# print(list1[9])
# print(list1[-1])
# print(list1[-2])
# print(list1[0:3])
# print(list1[:3])
# print(list1[5:10])
# print(list1[5:])
# print(list1[:])
# print(list1[-5:-1])
# print(list1[-5:])
# 4. 添加元素append
# list1 = ["a", "b", "c"]
# list1.append("end1")
# list1.append("end2")
# list1.insert(0, "start")
# list2 = ["e", "f"]
# list1.extend(list2)
# 5. 删除元素
# list1 = ["a", "b", "c"]
# list1.pop(1)
# list1.pop()
# list1.remove('a')
# del list1[1]
# 6. 清空元素
# list1.clear()
# 7. 排序
list1 = [21, 15, 3, 41, 25]
list2 = ["hello", "python", "world"]
# 7.1 sort方法--直接对原list排序
# list1.sort()
# list1.sort(reverse=True)
# list2.sort(key=len)
# 7.2 sorted方法--排序影响新的list,对原list没影响
# list2 = sorted(list1)
# 7.3 reverse方法
# list1.reverse()
# 8. 列表推导式-由现有列表产生新的列表
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list2 = [x*2 for x in list1]
list2 = [x*x for x in list1]
list2 = [x for x in list1 if x % 2 == 0]
list1 = [1, 2, 3]
list2 = [11, 12, 13]
list3 = [x + y for x in list1 for y in list2]
print(list3)
# print(list1)
print(list2)