欢迎访问宙启技术站
智能推送

让Python更容易的10个函数

发布时间:2023-06-25 09:40:23

作为一种易学易用而且多功能的语言,Python已经成为了众多开发者的首选语言。虽然Python在设计时考虑了人类的思维习惯,但是有时候学习或者使用Python的时候也会遇到一些问题。本文将介绍一些Python中可以让编程更容易的10个函数。

1. enumerate()

当需要遍历列表时,除了用for循环外,还可以使用enumerate()函数。该函数返回一个元组,包含一个计数器和一个可迭代对象的当前值。

示例代码:

fruits = ['apple', 'banana', 'mango']

for index, value in enumerate(fruits):
    print(index, value)

输出结果:

0 apple
1 banana
2 mango

这个函数对于需要记录每个元素的位置时非常有用。

2. zip()

另一个内置函数是zip(),它将两个或多个序列中的元素组合成一个元组。

示例代码:

names = ['John', 'Jane', 'Bob']
ages = [25, 26, 27]

for name, age in zip(names, ages):
    print(name, age)

输出结果:

John 25
Jane 26
Bob 27

zip()函数还可以用来解压缩序列,例如:

names = ["John", "Jane", "Bob"]
ages = [25, 26, 27]

# zip函数返回可迭代对象,使用*解压缩可迭代对象,变为两个单独的列表
new_names, new_ages = zip(*zip(names, ages))

print(new_names)
print(new_ages)

输出结果:

('John', 'Jane', 'Bob')
(25, 26, 27)

3. sorted()

Python的sorted()函数可以对序列进行排序。该函数有一个关键字参数key,它可以接受一个函数来指定排序时需要比较的元素。

示例代码:

fruits = ['apple', 'banana', 'mango', 'watermelon', 'orange']
print(sorted(fruits, key=len))

输出结果:

['apple', 'mango', 'banana', 'orange', 'watermelon']

这个代码将水果列表按照元素长度升序排序。

4. map()

map()是一个内置函数,它将函数应用于序列的每个元素,并返回一个新列表。

示例代码:

def square(x):
    return x**2

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(square, numbers))
print(squared_numbers)

输出结果:

[1, 4, 9, 16, 25]

map()函数将方程square()应用于序列中的每个元素,返回一个新列表。

5. filter()

filter()函数也是一个内置函数,它用于过滤序列中的项。它接受一个函数和一个序列作为参数,并返回包含所有在序列中出现的项中的项的新列表,其中在函数中返回True。

示例代码:

def is_even(x):
    return x % 2 == 0

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(is_even, numbers))
print(even_numbers)

输出结果:

[2, 4, 6]

filter()函数过滤掉了序列中的所有奇数,只返回了偶数。

6. reduce()

reduce()函数可以用来对序列中的元素进行累积计算。它接受一个函数和一个序列作为参数,并返回一个单个的值。

示例代码:

from functools import reduce

def add(x, y):
    return x + y

numbers = [1, 2, 3, 4, 5]
sum_numbers = reduce(add, numbers)
print(sum_numbers)

输出结果:

15

这个代码使用reduce()函数将序列中的所有数字相加,并返回它们的总和。

7. any()

any()函数用于判断给定的可迭代参数中是否有至少一个元素为True。该函数返回一个布尔值。

示例代码:

fruits = ['apple', 'banana', 'mango', 'watermelon']
print(any(fruit.startswith('a') for fruit in fruits))

输出结果:

True

8. all()

all()函数用于判断给定的可迭代参数中所有元素是否都为True。该函数返回一个布尔值。

示例代码:

fruits = ['apple', 'banana', 'mango', 'watermelon']
print(all(fruit.startswith('a') for fruit in fruits))

输出结果:

False

9. reversed()

reversed()函数可以用于反转序列。它接受一个序列对象,并返回一个反转的迭代器。

示例代码:

fruits = ['apple', 'banana', 'mango']
for fruit in reversed(fruits):
    print(fruit)

输出结果:

mango
banana
apple

这个代码使用reversed()函数对列表进行反转,并使用for循环打印每个元素。

10. slice()

Python的slice()函数用于访问序列中的子集。它接受三个参数:起始位置、结束位置和步长。

示例代码:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers[::2])

输出结果:

[1, 3, 5, 7, 9]

这个代码使用了步长为2的切片来获取数字列表中每两个数字中的一个。

总结

这些Python函数可以让编程更加简单、快速和灵活。在学习过程中,多尝试以下这些函数,以便更好地掌握它们和它们的应用。