网站首页 > 基础教程 正文
1. map(function, iterable, ...)
详细讲解:
- map()函数接受一个函数和一个迭代器作为参数。它将传入的函数应用于迭代器里的每个元素,然后返回一个新的迭代器,用于按顺序存储函数调用的结果。
- 该函数的一个常见用途是对数据进行转换和标准化处理。
应用案例:
- 平方数列表:将数字列表中的每个元素平方。
- 字符串长度:计算一组字符串中每个字符串的长度。
# 应用案例1: 数字列表的每个元素平方
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
# 输出: [1, 4, 9, 16]
# 应用案例2: 计算字符串长度
words = ["hello", "world", "python"]
lengths = list(map(len, words))
# 输出: [5, 5, 6]
2. filter(function, iterable)
详细讲解:
- filter()函数用于从一个序列中筛选出符合条件的元素,返回一个迭代器。该迭代器惰性获取数据,仅在需要时才处理元素。
- 它通常用于数据清洗,比如从一组数据中移除不需要的值。
应用案例:
- 筛选偶数:从列表中选择偶数。
- 移除空字符串:从字符串列表中移除所有的空字符串。
# 应用案例1: 筛选偶数
numbers = range(1, 11)
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# 输出: [2, 4, 6, 8, 10]
# 应用案例2: 移除空字符串
strings = ["python", "", "coding", ""]
non_empty_strings = list(filter(None, strings))
当filter()函数的第一个参数是None时,
Python的行为是保留那些在布尔上下文
中被评估为True的元素,
而不是字面上的"none"字符串
或None值本身。
这意味着,
如果迭代器中的元素在逻辑上被视为True,
这些元素就会被filter()保留;
否则(即元素被视为False,
比如0、False、""、None、空列表等),
这些元素就会被过滤掉。
# 输出: ['python', 'coding']
3. reduce(function, sequence[, initial]) (需要从functools导入)
详细讲解:
- reduce()函数将一个二元操作函数应用到所有序列的元素上,从而将序列减少为单一的值。
- 它在进行累积操作时非常有用,比如计算总和或乘积。
应用案例:
- 计算总和:计算数字列表的总和。
- 字符串连接:将字符串列表连接成一个长字符串。
from functools import reduce
# 应用案例1: 计算总和
numbers = [1, 2, 3, 4]
total_sum = reduce(lambda x, y: x + y, numbers)
# 输出: 10
# 应用案例2: 字符串连接
words = ["Python", "is", "awesome"]
sentence = reduce(lambda x, y: x + " " + y, words)
# 输出: 'Python is awesome'
4. sorted(iterable, *, key=None, reverse=False)
详细讲解:
- sorted()函数返回一个根据指定规则排序的新列表,不修改原始数据结构。
- 通过key参数可以自定义排序规则,reverse参数控制升序或降序排序。
应用案例:
- 按长度排序:按字符串长度对字符串列表进行排序。
- 按字典值排序:根据字典中的值对字典进行排序。
# 应用案例1: 按字符串长度排序
words = ["Python", "is", "a", "programming", "language"]
sorted_by_length = sorted(words, key=len)
# 输出: ['a', 'is', 'Python', 'language', 'programming']
# 应用案例2: 按字典值排序
data = [{'name': 'John', 'age': 45}, {'name': 'Diana', 'age': 35}]
sorted_by_age = sorted(data, key=lambda x: x['age'])
# 输出: [{'name': 'Diana', 'age': 35}, {'name': 'John', 'age': 45}]
5. all(iterable)和any(iterable)
详细讲解:
- all()和any()函数用于对可迭代对象进行布尔测试。all()返回True如果迭代器中的所有元素都为True(或迭代器为空)。any()返回True如果迭代器中有任何元素为True。
- 它们常用于快速检查序列中的元素是否满足某个条件。
应用案例:
- 检查是否所有元素为True:检查数字列表中的所有元素是否大于0。
- 检查是否有元素为True:检查数字列表中是否存在正数。
# 应用案例1: 检查所有元素是否大于0
numbers = [1, 2, 3, 4]
check_all_positive = all(x > 0 for x in numbers)
# 输出: True
# 应用案例2: 检查是否存在正数
numbers = [0, -1, -2, 3]
check_any_positive = any(x > 0 for x in numbers)
# 输出: True
6. enumerate(iterable, start=0)
详细讲解:
- enumerate()函数用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,通常用在for循环中。
- start参数用于指定索引起始值。
应用案例:
- 遍历列表:遍历列表,同时获取元素索引和值。
- 在字典中使用:在遍历字典时,获取键值对的顺序和键值对本身。
# 应用案例1: 遍历列表,获取索引和值
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits, start=1):
print(f"Index {index}: {fruit}")
# 输出:
# Index 1: apple
# Index 2: banana
# Index 3: cherry
# 应用案例2: 在字典中使用enumerate
data = {'a': 1, 'b': 2, 'c': 3}
for index, (key, value) in enumerate(data.items(), start=1):
print(f"Item {index}: {key}={value}")
# 输出:
# Item 1: a=1
# Item 2: b=2
# Item 3: c=3
猜你喜欢
- 2024-11-15 Python可接受任意数量参数的函数(编写函数,可以接收任意多个整数python)
- 2024-11-15 Python中10个最容易被忽略的内建函数
- 2024-11-15 Python 数据分析——NumPy ufunc函数
- 2024-11-15 应该早点了解 Python 中的 5 件事
- 2024-11-15 「Python基础知识」Python中常用的内建函数有哪些
- 2024-11-15 Python中高级函数及其用法(python3高级用法)
- 2024-11-15 python 自学 函数2(python函数详解)
- 2024-11-15 Python3入门——内置函数一(python内置函数怎么用)
- 2024-11-15 福利来了!68个Python内置函数最全总结,建议收藏
- 2024-11-15 Python 函数式编程(python编写程序函数)
- 06-18单例模式谁都会,破坏单例模式听说过吗?
- 06-18Objective-c单例模式的正确写法「藏」
- 06-18单例模式介绍(单例模式都有哪些)
- 06-18前端设计-单例模式在实战中的应用技巧
- 06-18PHP之单例模式(php单例模式连接数据库)
- 06-18设计模式:单例模式及C及C++实现示例
- 06-18python的单例模式(单例 python)
- 06-18你认为最简单的单例模式,东西还挺多
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)