python defalutdict函数用法
时间: 2023-06-07 15:10:12 浏览: 99
默认字典(defaultdict)是Python内置字典(dict)的子类,用于在字典中提供默认值。它使用默认工厂函数来填充缺少的键所对应的值,从而避免了在访问不存在的键时抛出KeyError异常的问题。默认工厂函数可以是任何可调用对象,例如int、list、set、lambda等等。下面是默认字典的用法示例:
```
from collections import defaultdict
# 创建一个以int为默认工厂函数的默认字典
dd = defaultdict(int)
# 对字典进行操作,自动创建缺少的键并初始化为0
dd['a'] += 1
dd['b'] += 2
dd['c'] += 3
print(dd) # defaultdict(<class 'int'>, {'a': 1, 'b': 2, 'c': 3})
```
在上述示例中,我们使用了int函数作为默认工厂函数,因此在访问不存在的键时,字典会自动创建该键并将其值初始化为0。如果我们使用的是list函数作为默认工厂函数,则字典会自动创建一个空列表并将其作为默认值。
相关问题
python enumerate 函数用法
`enumerate()`函数是Python内置的一个非常实用的功能,它允许你在遍历一个序列(如列表、元组或字符串)的同时,获取到每个元素的索引和值。这个函数返回一个枚举对象,其中的每个元素都是一个包含两个元素的tuple:第一个元素是索引,从0开始;第二个元素是对应的序列元素。
基本用法如下:
```python
numbers = ['one', 'two', 'three']
for index, value in enumerate(numbers):
print(f"Index: {index}, Value: {value}")
```
在这个例子中,你会得到类似这样的输出:
```
Index: 0, Value: one
Index: 1, Value: two
Index: 2, Value: three
```
`enumerate()`函数可以让你的循环代码更简洁,不需要显式地计算索引。如果你只需要值而不需要索引,也可以直接通过`values`属性提取:
```python
for value in enumerate(numbers):
print(value[1])
```
python yield函数用法
在Python中,`yield`关键字用于创建生成器(Generator)。它不是返回值,而是返回一个迭代器,可以在需要的时候逐个地生成值。当函数遇到`yield`时,会暂停并保存当前的状态,下次调用时从上次离开的地方继续执行,就像一个可以记住状态的普通函数。
以下是`yield`的一些基本用法:
1. **定义生成器**:
```python
def my_generator(n):
i = 0
while i < n:
yield i # 每次循环都暂停,并通过yield返回i的值
i += 1
gen = my_generator(5)
```
2. **生成并使用值**:
```python
for value in gen: # 使用for循环可以获取生成器的所有值
print(value)
```
3. **暂停和恢复执行**:
```python
# 使用next()函数手动触发生成器执行
print(next(gen)) # 输出0
print(next(gen)) # 输出1
```
当你想要控制生成器的行为或者处理大量数据,使用`yield`比一次性生成所有结果更节省内存。
阅读全文