"""
list.sort() 和sorted()方法
使用help()方法查看两个方法的说明
list.sort()和内置方法sorted() 都有key 和reverse参数
key参数接收一个函数来实现自定义的排序,例如:key = abs,按绝对值大小排序,reverse=False表示不需要反向排序
sort是列表的方法,只可以用在列表排序,是在原序列上修改,不会产生新的序列。
内置的sorted方法可以用于任何迭代对象(字符串、列表、元组、字典等),它会产生一个新的序列,旧对象依然存在。
"""
seq = [3,4,5,8,1,2,0]
seq.sort()
print(seq) # 不产生新的序列,在原序列的基础上修改
seq = [3,4,5,8,1,2,0]
seq_after = sorted(seq) # sorted产生新的序列
print("seq",seq)
print("seq_after",seq_after)

 

"""
按照al中的age大小顺序排序
"""
al = [{'name':'a',"age":20},{'name':'b',"age":30},{"name":"c","age":10}]

al.sort(key= lambda x:x["age"],reverse=True)
print(al)
"""
如何实现绝对值大小排序
"""
alist = [-5,-9,1,-6]
alist.sort(key=abs)
print(alist)

 

"""
对于字典 元组 集合 等元素 只能用内置sorted方法
"""
dict_before = {'a':3,"bc":5,'c':3,'asd':4,"33":56,"d":0}

dict_after = sorted(dict_before.items(),key= lambda x:x[0])
print(dict(dict_after))

 

"""
给定一个嵌套的列表,分别按照第一个 第二个元素做排序
"""
alist = [[1,2],[4,6],[3,1]]

alist.sort(key= lambda x:x[0])
print(alist)

alist.sort(key=lambda x:x[1])
print(alist)

列表常用的方法:

  list.append(x)    把一个元素添加到列表的末尾

  list.extend(L)    通过添加指定的列表所有的元素进行扩充列表

  list.insert(i,x)    在指定位置插入一个元素

  list.remove(x)    删除列表中值为x的元素,如果没有这样一个元素返回一个错误值

  list.pop[i]      从列表指定位置移除元素

  list.clear()      移除列表中所有项,等于del a[:]

  list.index(x)    返回列表中第一个值为x的元素的索引

  list.count(x)    返回x在列表中出现的次数

  list.reverse()    对列表中的元素进行倒序

  list.copy()    返回列表的浅拷贝   

什么是列表生成式:

  用来创建列表list的表达式 就是列表生成式,也被称为列表推导式,它相当于用for循环的简写形式。列表生成式返回的是一个列表,它提供了从序列创建列表的简单途径。

  语法[表达式 for循环]

  

li = [x*x for x in range(10)]
print(li)