python中内置的序列操作函数

一、filter:使用指定函数过滤可迭代对象

filter()函数用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成新列表。
 
语法:filter(function,iterable)
  function -- 判断函数。
  iterable -- 可迭代对象
  序列中的每个元素作为参数传递给函数进行判断,返回True或者False,最后将返回True的元素放到新列表中
 
注:filter函数返回一个惰性计算的filter对象或迭代器,不能通过index访问元素。可以通过list()转换为列表
eg:
def is_odd(n):
    return n%2 == 1
print(list(filter(is_odd,[1,2,3,4,5,6,7,8,9,10])))#  [1,3,5,7,9]

list_2 = [1, 9, 40, 0, 8, 0, 3]
print(list(filter(lambda x: x, list_num))) #[1, 2, 3, 8, 3]

二、next:返回可迭代对象中的下一个元素值

next() 函数要和生成迭代器的 iter() 函数一起使用。
 
语法:next(iterable[, default])
    iterable -- 可迭代对象
    default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。
eg:
it = iter([1, 2, 3, 4, 5])
while True:
    try:
        x = next(it)
        print(x)
    except StopIteration:
        break

三、sorted:对可迭代对象进行排序,返回一个新的列表

sorted() 函数对所有可迭代的对象进行排序操作。
(1)sort 与 sorted 区别:
  • sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
  • list 的 sort 方法改变原有list,无返回值,而内建函数 sorted 返回的是一个新的 list
(2)语法: sorted(iterable, cmp=None, key=None, reverse=False)
       iterable -- 可迭代对象。
       cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
       key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
       reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
 

四、zip:聚合传入的每个迭代器中相同位置的值,返回一个新的迭代器

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
 
语法:zip([iterable, ...])
注:zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。
eg:
x = [1,2,3] #长度3
y = [4,5,6,7,8] #长度5
print(list(zip(x,y))) # 取最小长度3,[(1, 4), (2, 5), (3, 6)]

#等同于
list=[]
for i, v1 in enumerate(x):
    for j, v2 in enumerate(y):
        if i == j:
            a = (v1, v2)
            list.append(a)
print(list) #[(1, 4), (2, 5), (3, 6)]
 
posted @ 2022-08-12 16:37  张小丹  阅读(162)  评论(0编辑  收藏  举报