不容错过的 30 个 Python 单行代码,高效简洁的代码技巧
不容错过的 30 个 Python 单行代码,高效简洁的代码技巧Python 被广泛认为是最易学的编程语言之一,以其简洁性、可读性和多功能性著称。Python 的一个关键特性是它能够通过简短且可读的单行代码完成复杂操作。
接下来示例30 个必备的 Python 单行代码,它们可以帮助你编写更简洁、高效的代码。无论你是初学者还是有经验的开发者,这些单行代码都能优化你的编码流程。
一:列表推导式
列表推导式为创建列表提供了一种简洁的方式,使代码更简练和易读。
[x**2 for x in range(1, 11)]
这一行代码生成了一个从 1 到 10 的数字的平方列表,避免了使用循环。
二:使用reduce 计算阶乘
使用 reduce()
函数,可以在一行代码中计算一个数的阶乘。
from functools import reduce reduce(lambda x, y: x * y, range(1, 6))
上述示例中的一行代码使用 reduce()
计算 5 的阶乘。
三:使用Lambda 函数进行排序
Lambda 函数能够快速且简洁地对列表进行排序。
tuples_list = [(1, 'a'), (3, 'c'), (2, 'b')] sorted(tuples_list, key=lambda x: x[1])
上面示例使用 lambda 函数根据元组的第二个元素对列表进行排序。
四:合并两个字典
使用 Python 的字典推导式,可以轻松地合并字典。
dict1 = {'a': 1, 'b': 2} dict2 = {'c': 3, 'd': 4} {**dict1, **dict2}
一行代码将两个字典合并成一个字典。
五:字典推导式
使用字典推导式可以在一行代码中从列表创建字典。
keys = ['a', 'b', 'c'] values = [1, 2, 3] {keys[i]: values[i] for i in range(len(keys))}
示例中的一行代码将两个列表映射到一个字典中。
六:在字典中找到最大值
轻松找到字典中具有最高值的键。
d = {'a': 1, 'b': 2, 'c': 3} max(d, key=lambda k: d[k])
这一行代码检索字典中具有最大值的键。
七:检查子字符串是否存在
在一行代码中检查一个子字符串是否存在于一个字符串中。
"Python" in "I love Python programming"
八:通过切片反转字符串
你可以使用切片反正字符串,并轻松检查一个字符串是否是Palindrome 。
is_palindrome = lambda s: s == s[::-1] print(is_palindrome("radar"))
这一行代码通过反转字符串来检查它是否是Palindrome 。
九:反转字典
通过交换键和值来反转字典。
{v: k for k, v in {'a': 1, 'b': 2, 'c': 3}.items()}
十:使用 zip() 配对元素
轻松将多个列表中的元素配对成元组。
names = ["Alice", "Bob", "Charlie"] ages = [25, 30, 35] list(zip(names, ages))
十一:找出两个列表的交集
使用集合操作找到两个列表之间的共同元素。
set([1, 2, 3]) & set([2, 3, 4])
十二:使用 any() 和 all() 进行条件检查
检查列表中的任意或所有元素是否满足特定条件。
values = [1, 2, 3, 4] print( any(x > 3 for x in values) ) print( all(x > 0 for x in values) )
十三:从两个列表生成字典
使用 zip()
函数从两个列表创建一个字典。
keys = ['a', 'b', 'c'] values = [1, 2, 3] dict(zip(keys, values))
十四:使用 map() 转换列表
通过 map()
函数将一个函数应用于列表中的每个项目。
strings = ["hello", "world"] list(map(str.upper, strings))
十五:查找元素的索引
在列表中找到特定元素的索引。
[1, 2, 3, 4, 5].index(3)
十六:一行代码中的嵌套循环
使用列表推导式在一行代码中编写嵌套循环。
list1 = [1, 2, 3] list2 = ['a', 'b'] [(x, y) for x in list1 for y in list2]
十七:筛选偶数
使用列表推导式从列表中过滤出偶数。
[x for x in range(1, 21) if x % 2 == 0]
十八:获取唯一元素的列表
使用 Python 的 set()
函数从列表中提取唯一元素。
list(set([1, 2, 2, 3, 4, 4, 5]))
十九:将列表转换为字符串
使用 join()
将列表合并成一个字符串。
list1 = ['Python', 'is', 'fun'] " ".join(list1)
二十:逐行读取文件
使用简单的列表推导式从文件中读取行。
[line.strip() for line in open("iris.csv")]
二十一:替换子字符串
使用 replace()
方法替换字符串中的部分内容。
"I like Python".replace("like", "love")
二十二:扁平化嵌套列表
将嵌套列表展平为单一列表。
nested_list = [[1, 2], [3, 4], [5, 6]] [item for sublist in nested_list for item in sublist]
二十三:查找列表中出现频率最高的元素
使用 max()
函数和 key
参数轻松找到列表中出现频率最高的元素。
num_list=[1, 2, 2, 3, 3, 3, 4, 4] max(num_list, key=num_list.count)
二十四:反转列表
使用 Python 的切片技术反转列表中的元素。
[1, 2, 3, 4, 5][::-1]
二十五:将字符串列表转换为整数
使用 map()
将字符串列表转换为整数。
str_list = ['1', '2', '3'] list(map(int, str_list))
二十六:查找列表中的重复元素
使用集合操作识别列表中的重复元素。
num_list=[1, 2, 2, 3, 3, 3, 4, 4] list(set([x for x in num_list if num_list.count(x) > 1]))
二十七:检查所有元素是否唯一
通过将列表的长度与集合的长度进行比较来检查列表中所有元素是否唯一。
num_list=[1, 2, 2, 3, 3, 3, 4, 4] len(num_list) == len(set(num_list))
二十八:将每个单词的首字母大写
使用 Python 的 title()
方法将字符串中每个单词的首字母大写。
"python programming is fun".title()
二十九:求字典中所有值的和
使用 sum()
函数求字典中所有值的和。
my_dict = {'a': 1, 'b': 2, 'c': 3} sum(my_dict.values())
三十:找出句子中每个单词的长度
使用列表推导式找出字符串中每个单词的长度。
sentence = "Python is amazing" [len(word) for word in sentence.split()]
这 30 个 Python 单行代码展示了语言的强大和简洁。通过掌握这些技巧,你可以编写更高效、更易读的代码,帮助在更少的行数中解决复杂问题。无论是编写快速脚本还是构建更大的项目,这些单行代码都能帮助你提升生产力。