2022-04-15 filter 和 sorted

Python内建的filter()函数用于过滤序列

和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

# 回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数:

def is_palindrome(n):

    n = str(n)

    return n == n[::-1]

# 测试

output = filter(is_palindrome, range(1,1000))

print('1~1000:', list(output))


Python内置的sorted()函数就可以对list进行排序

>>> sorted(['bob','about','Zoo','Credit'], key=str.lower, reverse=True)

['Zoo','Credit','bob','about']

# 假设我们用一组tuple表示学生名字和成绩:

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

def by_name(t):

    return t[0]


L2 = sorted(L, key=by_name)

print(L2)

def by_score(t):

    return t[1] - 100


L2 = sorted(L, key=by_score)

print(L2)

你可能感兴趣的:(2022-04-15 filter 和 sorted)