Python 标准库包含许多可帮助您完成编程任务的函数。 了解最有用的并创建更健壮的代码。编写更少的代码是编写更具可读性的功能性程序的好方法。 您不应该浪费宝贵的时间来重新创建现成的 Python 函数或方法。 不过,如果您不熟悉 Python 的内置工具,您可能最终会这样做。
这里为您列出了宝贵的 Python 内置函数和方法,它们可以缩短您的代码并提高其效率。
Python 函数教程
1. reduce()
Python 的 reduce() 函数迭代列表中的每一项或任何其他可迭代数据类型,并返回单个值。 它是 Python 内置的 functools 类的方法之一。
下面是一个如何使用 reduce 的例子:
1
2 3 4 5 6 |
from functools import reduce
def add_num(a, b): return a+b a = [1, 2, 3, 10] print(reduce(add_num, a)) Output: 16 |
您还可以使用 reduce() 函数格式化字符串列表:
1
2 3 4 5 6 |
from functools import reduce
def add_str(a,b): return a+’ ‘+b a = [‘I’, ‘Love’, ‘DaYanZai’, ‘.’, ‘Me’] print(reduce(add_str, a)) Output: I Love DaYanZai.Me |
2. split()
split() 函数根据设置的条件拆分字符串。 您可以使用它从 Web 表单中拆分字符串值。 或者您甚至可以使用它来计算一段文本中的单词数。
下面的示例代码在有空格的地方拆分列表:
1
2 3 4 |
words = “column1 column2 column3″
words = words.split(” “) print(words) Output: [‘column1’, ‘column2’, ‘column3’] |
3.enumerate()
enumerate() 函数返回可迭代对象的长度并同时循环遍历其项。 因此,在以可迭代数据类型打印每个项目时,它同时输出其索引。
假设您希望用户查看您的数据库中可用的项目列表。 您可以将它们传递到列表中并使用 enumerate() 函数将其作为编号列表返回。
以下是使用 enumerate() 方法实现此目的的方法:
1
2 3 4 5 6 7 |
fruits = [“grape”, “apple”, “mango”]
for i, j in enumerate(fruits): print(i, j) Output: 0 grape 1 apple 2 mango |
然而,您可能已经浪费了使用以下方法来实现这一目标的宝贵时间:
1
2 3 |
fruits = [“grape”, “apple”, “mango”]
for i in range(len(fruits)): print(i, fruits[i]) |
除了速度更快之外,枚举列表还可以让您自定义编号项目的显示方式。
本质上,您可以决定从 1 开始编号,而不是从 0 开始,方法是包含一个 start 参数:
1
2 3 4 5 6 |
for i, j in enumerate(fruits, start=1):
print(i, j) Output: 1 grape 2 apple 3 mango |
4. eval()
Python 的 eval() 函数允许您对整数或浮点数执行数学运算,即使是字符串形式。 如果数学计算采用字符串格式,通常会很有帮助。
这是它的工作原理:
1
2 3 4 |
g = “(4 * 5)/4”
d = eval(g) print(d) Output: 5.0 |
5. round()
您可以使用 round() 将数学运算的结果四舍五入为特定数量的有效数字:
1
2 3 4 5 6 7 |
raw_average = (4+5+7/3)
rounded_average=round(raw_average, 2) print(“原始平均值是:”, raw_average) print(“四舍五入的平均值是:”, rounded_average) Output: 原始平均值是: 11.333333333333334 四舍五入的平均值是: 11.33 |
6. max()
max() 函数返回可迭代对象中排名最高的项目。 但是,请注意不要将其与最常出现的值混淆。
让我们使用 max() 函数打印下面字典中排名最高的值:
1
2 3 |
b = {1:”grape”, 2:”apple”, 3:”applesss”, 4:”zebra”, 5:”mango”}
print(max(b.values())) Output: zebra |
上面的代码按字母顺序排列字典中的项目并打印最后一个。
现在使用 max() 函数查看列表中的最大整数:
1
2 3 |
a = [1, 65, 7, 9]
print(max(a)) Output: 65 |
7. min()
min() 函数的作用与 max() 的作用相反:
1
2 3 4 5 6 7 8 |
fruits = [“grape”, “apple”, “applesss”, “zebra”, “mango”]
b = {1:”grape”, 2:”apple”, 3:”applesss”, 4:”zebra”, 5:”mango”} a = [1, 65, 7, 9] print(min(a)) print(min(b.values())) Output: 1 apple |
8. map()
与 reduce() 一样,map() 函数允许您迭代可迭代对象中的每个项目。 然而,map() 不是产生单个结果,而是独立地对每个项目进行操作。
最终,您可以使用 map() 函数对两个或多个列表执行数学运算。 您甚至可以使用它来操作包含任何数据类型的数组。
以下是如何使用 map() 函数查找包含整数的两个列表的组合总和:
1
2 3 4 5 6 7 8 9 |
b = [1, 3, 4, 6]
a = [1, 65, 7, 9] # 声明一个单独的函数来处理加法: def add(a, b): return a+b # 将函数和两个列表传递给内置的 map() 函数: a = sum(map(add, b, a)) print(a) Output: 96 |
9. getattr()
Python 的 getattr() 返回对象的属性。 它接受两个参数:类和目标属性名称。
下面是一个例子:
1
2 3 4 5 6 7 8 |
class ty:
def __init__(self, number, name): self.number = number self.name = name a = ty(5*8, “Idowu”) b = getattr(a, ‘name’) print(b) Output:Idowu |
10.append()
无论您是深入研究 Web 开发还是使用 Python 进行机器学习,append() 都是您经常需要的另一种 Python 方法。 它的工作原理是将新数据写入列表而不覆盖其原始内容。
下面的示例将整数范围内的每个项目乘以 3 并将它们写入现有列表:
1
2 3 4 5 6 7 |
nums = [1, 2, 3]
appendedlist = [2, 4] for i in nums: a = i*3 appendedlist.append(a) print(appendedlist) Output:[2, 4, 3, 6, 9] |
11.range()
您可能已经熟悉 Python 中的 range()。 如果您想创建一个范围在特定数字之间的整数列表而不明确写出它们,这会很方便。
让我们使用这个函数创建一个 1 到 5 之间的奇数列表:
1
2 3 4 5 6 7 |
a = range(1, 6)
b = [] for i in a: if i%2!=0: b.append(i) print(b) Output: [1, 3, 5] |
12.slice()
尽管 slice() 函数和传统的 slice 方法给出了相似的输出,但在代码中使用 slice() 可以使其更具可读性。
您可以使用 slice 方法对任何可变的可迭代对象进行切片:
1
2 3 4 5 6 7 8 |
b = [1, 3, 4, 6, 7, 10]
st = “Python 教程” sliceportion = slice(0, 4) print(b[sliceportion]) print(st[sliceportion]) Output: [1, 3, 4, 6] Pyth |
当您使用下面的传统方法时,上面的代码给出了类似的输出:
1
2 |
print(b[0:4])
print(st[0:4]) |
13.format()
format() 方法可让您操作字符串输出。 这是它的工作原理:
1
2 3 4 5 6 7 |
multiple = 5*2
multiple2 = 7*2 a = “{} 是 5 和 2 的倍数,但 {} 是 7 和 2 的倍数” a = a.format(multiple, multiple2) print(a) Output: 10 是 5 和 2 的倍数,但 14 是 7 和 2 的倍数 |
14.strip()
Python 的 strip() 从字符串中删除前导字符。 如果第一个字符与提供的任何字符匹配,它会重复从字符串中删除第一个字符。
如果不指定字符,strip 将从字符串中删除所有前导空白字符。
下面的示例代码从字符串中删除字母 P 和它前面的空格:
1
2 3 4 |
st = ” Python 教程”
st = st.strip(” P”) print(st) Output: ython 教程 |
您可以将 (” P”) 替换为 (“P”) 以查看会发生什么。
15.abs()
你想消除负面的数学输出吗? 然后尝试 abs() 函数。 它可以在计算编程或数据科学操作中派上用场。
请参阅下面的示例了解其工作原理:
1
2 3 4 |
neg = 4 – 9
pos = abs(neg) print(pos) Output: 5 |
16. upper()
顾名思义,upper() 方法将字符串字符转换为它们的大写等价物:
1
2 3 4 |
y = “Python tutorial”
y = y.upper() print(y) Output: PYTHON TUTORIAL |
17. lower()
你猜对了! Python 的 lower() 与upper() 相反。 所以它将字符串字符转换为小写:
1
2 3 4 |
y = “PYTHON TUTORIAL”
y = y.lower() print(y) Output: python tutorial |
18. sorted()
sorted() 函数的工作原理是从可迭代对象中创建一个列表,然后按降序或升序排列其值:
1
2 3 4 5 6 7 |
f = {1, 4, 9, 3} # 尝试在一个集
sort = {“G”:8, “A”:5, “B”:9, “F”:3} # 尝试在一个字典 print(sorted(f, reverse=True)) # Descending print(sorted(sort.values())) # Ascending (default) Output: [9, 4, 3, 1] [3, 5, 8, 9] |
19. join()
join() 函数可让您合并列表中的字符串项。
您只需要指定一个分隔符和目标列表即可使用它:
1
2 3 4 |
a = [“Python”, “教程”, “在”, “DaYanZai.Me”]
a = ” “.join(a) print(a) Output: Python 教程在 DaYanZai.Me |
20.replace()
Python 的 replace() 方法允许您用另一个字符替换字符串的某些部分。 它在数据科学中通常很方便,尤其是在数据清理期间。
replace() 方法接受两个参数:被替换的字符和您想要替换的字符。
这是它的工作原理:
1
2 3 4 5 6 7 8 |
columns = [“Cart_name”, “First_name”, “Last_name”]
for i in columns: i = i.replace(“_”, ” “) print(i) Output: Cart name First name Last name |
继续学习构建 Python 的强大功能
作为一种已编译的、更高级的编程语言,拥有广泛的社区支持,Python 不断接收许多额外的函数、方法和模块。 虽然我们在这里介绍了大多数流行的功能,但研究正则表达式等功能并深入研究它们在实践中的工作方式,将帮助您跟上 Python 的发展步伐。