python列表函数内部 python中关于列表的函数( 二 )


效果就是: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
举例说明,将序列 [1,2,3,4,5] 变换成整数 12345 :
小练习:编写一个 prod() 函数 , 可以接受一个 list 并利用 reduce 求积:
map() 和 reduce() 综合练习:编写 str2float 函数,把字符串 '123.456' 转换成浮点型 123.456
filter() 函数用于过滤序列, filter() 也接受一个函数和一个序列,filter() 把传入的函数依次作用于每个元素 , 然后根据返回值是 True 还是 False 决定保留还是丢弃该元素 。
举例说明,删除list中的偶数:
小练习:用 filter() 求素数
定义一个筛选函数:
定义一个生成器不断返回下一个素数:
打印100以内素数:
python内置的 sorted() 函数可以对list进行排序:
sorted() 函数也是一个高阶函数,还可以接受一个 key 函数来实现自定义排序:
key 指定的函数将作用于list的每一个元素上,并根据 key 函数返回的结果进行排序.
默认情况下,对字符串排序,是按照ASCII的大小比较的 , 由于'Z''a',结果,大写字母Z会排在小写字母a的前面 。如果想忽略大小写可都转换成小写来比较:
要进行反向排序 , 不必改动key函数 , 可以传入第三个参数 reverse=True :
小练习:假设我们用一组tuple表示学生名字和成绩: L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]。用sorted()对上述列表分别按c成绩从高到低排序:
运用匿名函数更简洁:
四、 python中的数据类型——列表列表是一种有序的集合,有点类似c里面的数组 。它的特点是,可以随时向里面添加或删除其中的元素,在python中经常用来存放数据 。列表的特点是中括号,内部元素用逗号隔开 。
在这个列表中,可以放进去任何元素,不论你的元素是字符串、整型、浮点型、还是布尔值、空值,包括列表什么的,都可以放进去 。
元素与元素之间,用逗号隔开 。
列表会为每个元素分配序号,这个序号代表它的位置,称为索引(index),第一个元素的位置是0,第二个元素是1,以此类推 。
使用索引获取列表中的值时,需要使用中括号来访问 , 在中括号前面加上列表名,中括号内部是元素的索引 。
0代表第一个元素的位置 , 1代表第二个,-1代表倒数第一个,-2代表倒数第二个
使用 len() 函数 , 可以查看列表里面有多少个元素
在python中,列表的操作是非常的灵活的,我们可以向其中添加或删除元素 。
添加使用 list.append() 函数
list.append() 函数是将元素插入到列表的末尾,当我们想在特定位置插入元素时可以使用 list.insert() 函数
list.insert() 函数接受两个参数,第一个参数是插入位置,第二个参数是要插入的元素 。
需要注意的是 , 在使用append和insert时 , 必须在前面注明要操作的列表 。就像上面的例子,我们要操作classmates这个列表,所以必须写成 classmates.append() 或 classmates.insert() ,如果不这么写,计算机就不知道你要往哪个列表中加入元素 。
没有特殊情况的话,推荐使用append()函数添加元素,因为使用append的时候,元素默认加在列表尾部 , 不会造成其他元素索引值的改变 。如果使用insert的话,就像上面的insert(1,'Tom') , 在位置1插入'Tom'后 , Tom后面所有的元素 , 索引值都加了一个1,列表中元素越多,受影响的程度越大,因此使用append()函数要比insert()函数更快 。
删除列表中元素的方法有三种
del后面需要用索引的方式表明要删除的元素,也就是上面的例子 , names[1]代表names中的第二个元素,使用del即可删除

推荐阅读