Python核心数据类型——字典

本文详细介绍了Python中字典的基本操作,包括创建、更新、删除字典元素,以及如何使用get和pop方法。此外还讲解了字典的遍历方法和一些实用的字典方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  字典中的元素是通过键来存取的,而不是通过偏移来存取,保存在字典中的项没有特定的顺序,支持在原处修改。

#字典的创建方法
>>> D1 = {}
>>> D2 = {'spam': 2, 'eggs': 3}

 

2.  当对新字典键进行赋值(之前没有被赋值的键),就会在字典内生成一个新的元素。

>>> D1 = {'a': 1, 'b': 2}
>>> D1['c'] = 3
>>> D1
{'a': 1, 'c': 3, 'b': 2}

 

3.  删除和获取键

>>> D1 = {'a': 1, 'b': 2}
>>> D1.get('a')#如果'a'这个键不存在返回None,若存在返回映射的值
1
>>> D1.get('c', 'Key does not exist')#如果'c'这个键不存在返回'Key does not exist',若存在返回映射的值
'Not this key'
>>> D2 = {'a': 0, 'c': 3}
>>> D1
{'a': 1, 'b': 2}
>>> D1.update(D2)#update方法类似于合并,若存在相同的键就用新的覆盖旧的
>>> D1
{'a': 0, 'c': 3, 'b': 2}
>>>
>>> D1.pop('a')         #pop方法删除一个键,并返回它的值
0
>>> D1
{'c': 3, 'b': 2}
>>> del D1['b']          #del方法删除一个键
>>> D1
{'c': 3}

 

4.  字典的键可以实现稀疏数据结构。

>>> D1 = {1: 'a', 100: 'b'} # 避免需要创建100个元素的数组(列表)
>>> D1[1]
'a'
>>> D[100]
>>> D1[100]
'b'

 

5.  键可以是任何不可变的对象(如数字,字符串),因为必须保证键的不可变,键是唯一的。

 

6. 字典的一些方法

>>> D2.keys()
['a', 'c']
>>> D2.values()
[0, 3]
>>> D2.items()
[('a', 0), ('c', 3)]

 

7.  遍历字典

 

>>> for key in D1.keys():
...     print key, D1[key]
...
c 3
b 2
>>> for v in D1.values():
...     print v
...
3
2
>>> for key in D1:
...     print key, D1[key]
...
c 3
b 2

 

如果要在遍历字典的同时进行删除或添加操作,就不能用for key in D1,而要使用D1.keys(),因为本质上D1.keys()返回一个新的list,不随着D1的修改而改变。否则会出现

RuntimeError: dictionary changed size during iteration

 

>>> for key in D1.keys():
...     D1.pop(key)
...

 

 k, v 方式的遍历

# D.items() 返回的是列表
for k, v in D.items():
    print k, v

# D.iteritems() 返回的是生成器
for k, v in D.iteritems():
    print k, v

print type(D.items())
print type(D.iteritems())

>>> <type 'list'>
>>> <type 'dictionary-itemiterator'>

 

 

 

转载于:https://www.cnblogs.com/restran/archive/2011/11/27/2265109.html

### Python 字典字符串的计算思维训练 #### 创建和初始化字典Python中,字典是一种映射类型的数据结构,允许存储键-值对。可以通过大括号`{}`来定义一个字典,并使用冒号分隔键和对应的值[^1]。 ```python person_info = {"name": "Alice", "age": 25, "city": "Beijing"} ``` #### 访问字典中的元素 要获取某个特定键所关联的值,可以采用方括号语法指定该键名;如果尝试访问不存在的键,则会引发异常。为了避免这种情况发生,建议先检查键是否存在或使用内置方法`.get()`。 ```python print(person_info["name"]) # 输出 Alice print(person_info.get("gender")) # 返回 None 而不是抛出错误 if "email" in person_info: print(person_info["email"]) else: print("Email not found.") ``` #### 修改和更新字典内容 由于字典是可变容器模型的一部分,在不改变其身份的情况下可以直接修改其中的内容。这既包括新增条目也涵盖了已有项的替换操作[^2]。 ```python person_info.update({"age": 26}) person_info["hobby"] = ["reading", "swimming"] ``` #### 遍历字典 遍历时可以选择只迭代所有的键、仅限于值亦或是同时取得两者组合而成的关键信息元组形式。对于后者而言,推荐借助.items()成员函数实现更高效的循环逻辑构建。 ```python for key in person_info.keys(): print(f"{key}: {person_info[key]}") for value in person_info.values(): print(value) for k, v in person_info.items(): print(k, '->', v) ``` #### 处理字符串基础功能 字符串是由零个或多个字符构成的一维数组,支持索引定位单个字母以及切片提取子串片段。此外还提供了诸如大小写转换、去除空白符等功能接口方便日常开发工作。 ```python text = " Hello World! " cleaned_text = text.strip().lower() substring = cleaned_text[:5] replaced_string = cleaned_text.replace('world', 'everyone') formatted_message = f"Greetings to {replaced_string}." ``` #### 实际案例分析:多项式的求导运算 给定一个多项目式表达式作为输入参数传入名为`diff`的方法体内,内部实现了基于幂法则完成微积分学意义上的导数计算过程并返回新的系数表征结果集合作为输出对象[^3]。 ```python def diff(poly_dict): result = {} for power, coefficient in poly_dict.items(): if power != 0: new_power = power - 1 derived_coefficient = power * coefficient result[new_power] = derived_coefficient return result ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值