链式比较
其他编程语言通常是0 < a && a < 10
a = 5
if 0 < a < 10:
print('0 < a < 10')
列表推导式
列表推导式不仅简洁,还能提高性能,尤其在处理大数据时。
# 普通循环
squares = []
for i in range(10):
squares.append(i * i)
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 使用列表推导式
squares = [i * i for i in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
交换变量值
其他编程语言通常需要新增变量 c 才能交换
a, b = 1, 2
print(a, b)
a, b = b, a
print(a, b)
反转列表
[1, 2, 3][::-1] # [3, 2, 1]
反转字符串
'abc'[::-1] # 'cba'
For Else
a = [1, 2, 3]
for item in a:
if item == 0:
print(item)
break
else:
print('没有跳出for循环1') # 不会跳出循环, 这条代码会执行
for item in a:
if item == 2:
break
else:
print('没有跳出for循环2') # 这条代码不会执行
移除列表中的重复元素
arr = [1, 2, 3, 2, 1]
print(list(set(arr))) # [1, 2, 3]
使用 enumerate() 获取索引和值
for index, value in enumerate(['a', 'b', 'c']):
print(index, value)
# 输出
0 a
1 b
2 c
使用 defaultdict 避免 KeyError
from collections import defaultdict
d = defaultdict(int) # 默认值为int,意味着默认值是0, 如果是str, 默认值就是空字符串
d['apple'] = 1
print(d['apple2']) # 输出: 0, 不会报错KeyError: 'apple2'
d['apple3'] = d['apple'] + d['apple2']
print(d['apple3']) # 输出: 1
print(d) # 输出: defaultdict(<class 'int'>, {'apple': 1, 'apple2': 0, 'apple3': 1})
使用 with 管理资源
with 语句用于自动管理资源的开关,避免资源泄露(如文件、网络连接等)。
with open('file.txt', 'r') as f:
content = f.read()
# 自动关闭文件,不需要手动调用 f.close()
使用 Counter 统计元素频率
Counter 是 collections 模块中的一个类,用于快速统计可迭代对象中元素的频率。
相对其他编程语言,Python 一行代码就能完成。。
from collections import Counter
data = ['apple', 'orange', 'apple', 'banana', 'banana', 'banana']
count = Counter(data)
print(count) # 输出: Counter({'banana': 3, 'apple': 2, 'orange': 1})
使用 join() 拼接字符串
使用 join() 更高效,因为它避免了多次创建新的字符串对象。
words = ['Hello', 'World', 'Python']
sentence = ' '.join(words)
print(sentence) # 输出: "Hello World Python"
lambda 匿名函数
适用于那些只需要简单函数的场景。
square = lambda x: x * x
print(square(5)) # 输出: 25
使用 any() 和 all() 简化条件判断
any() 判断至少一个条件为真
any() 会检查可迭代对象中的元素,只要有一个元素为 True,就返回 True;如果所有元素都是 False,则返回 False。
示例:检查是否至少有一个值大于10
numbers = [5, 12, 3, 7]
if any(num > 10 for num in numbers):
print("至少有一个数字大于10")
else:
print("没有数字大于10")
all() 判断所有条件都为真
all() 会检查可迭代对象中的所有元素,只有当所有元素都为 True 时,才返回 True;如果有任何元素为 False,则返回 False。
示例:检查列表中的所有值都大于0
numbers = [5, 12, 3, 7]
if all(num > 0 for num in numbers):
print("所有数字都大于0")
else:
print("至少有一个数字不大于0")
使用 any() 和 all() 结合进行更复杂的判断
示例:检查列表中是否所有数字为正且至少有一个数字大于10
numbers = [5, 12, 8, 7]
if all(num > 0 for num in numbers) and any(num > 10 for num in numbers):
print("所有数字大于0且至少有一个数字大于10")
else:
print("条件不满足")