使⽤ast模块中的literal_eval函数来实现,把字符串形式的list转换为Python的基础类型list
from ast import literal_eval
str_list = "[1838, 13735, 8285, 35386]"
mylist = literal_eval(str_list)
type(mylist )
filter() 函数⽤于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第⼀个为函数,第⼆个为序列,序列的每个元素作为参数传递给函数进⾏判,然后返回 True 或 False,最后将返回
True 的元素放到新列表中。
filter(function, iterable)
Python3.x 返回的结果是迭代器对象,可以使⽤list()函数把迭代器对转转换为列表对象,例如,
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ群:531509025
寻找有志同道合的⼩伙伴,互帮互助,群⾥还有不错的视频学习教程和PDF电⼦书!
'''
>>> ret = filter(lambda x: x % 2 == 0, range(10))
>>> print(list(ret))
[0, 2, 4, 6, 8]
当对List、Dict进⾏排序时,Python提供了两个⽅法:
⽤List的成员函数sort进⾏排序,在本地进⾏排序,不返回副本
⽤built-in函数sorted进⾏排序(从2.4开始),返回副本,原始输⼊不变
在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都是⼀样的,主要区别在于,list.sort()是对已经存在的列表进⾏操作,
进⽽可以改变列表;⽽内建函数sorted返回的是⼀个新的list,⽽不是在原来的基础上进⾏的操作。返回值是⼀个经过排序的可迭代类型,
与iterable是⼀样的。
sorted(iterable, key=None, reverse=False)
list_obj.sort(key=None, reverse=False)
reverse:排序规则,reverse = True 表⽰降序,reverse = False 表⽰升序,默认值是按照升序排序
key:key参数接受⼀个函数,该函数只有⼀个参数,参数是列表项,也就是说,key参数⽤于在进⾏⽐较之前指定在每个列表元素上要
调⽤的函数。
key参数接收的函数形式如下,x是列表项的元素,key接受的函数必须返回值,⽤于表⽰此元素的权值,sort将按照权值的⼤⼩进⾏排序
list = [('d',3),('a',5),('d',1),('c',2),('d',2)]