python字典(dictionary)中get和items、iteritems方法

本文深入介绍了Python中的字典(dict)数据结构,包括其初始化、访问、迭代等操作方法。此外,还对比了不同访问方式的区别及如何高效遍历字典。

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

dictionary

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
值得注意的是,由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值覆盖。

#dict的初始化 key-value
>>>dic = {‘1’:‘one’,2:'two','3':'three'}

取出字典中的值 与get函数

一般的我们可以通过key来获取对应的value,但是也可以使用get函数。
其中get函数原型为dict.get(key, default=None),
参数说明:
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值值。默认为None,也可以指定其他值。
返回值:
返回指定键的值,如果值不在字典中返回默认值None。

# 访问的key都存在时,并没有什么区别
# 'one'
>>>dic['1'] 

# 'one'
>>>dic.get('1','No')
#访问的key不存在的时候,就有区别了,get能使程序继续运行下去,而直接通过key访问的方#法会报错
>>>dic['women'] 
# None
>>>print dic.get('women')
#meiyou
>>>print dic.get('womne','meiyou')

items与iteritems

items方法是可以将字典中的所有项,以列表方式返回。也就说将字典转成了list。
iteritems方法与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器。至于为什么要转为迭代器,当然是为了迭代访问字典中的元素。而且由于iteritems是就地转为迭代器的,不同于items会返回一个全新的列表,所以不会消耗额外空间。

>>> dic = {'1':'one', '2':'two', '3':'three'}  
>>> x = dic.items()  
>>> x  
[('1', 'one'), ('3', 'three'), ('2', 'two')]  
>>> type(x)  
<type 'list'>  
>>>type(x[0])
<type 'tuple'>
#  使用iteritems方法
>>> y = d.iteritems()  
>>> type(y)
<type 'dictionary-itemiterator'>
>>> y
<dictionary-itemiterator object at 0x7f70f4ec9890>
# 与下面一节的访问key-value比较一下就可以看出其中的不同了
>>> type(dic)
<type 'dict'>
# 【注意使用了iteritems方法之后】
>>> dic2 = dic.iteritems()
>>> type(dic2)
<type 'dictionary-itemiterator'>
# 将dic转为迭代器之后,直接就可以迭代dic2内的元素了
>>> for k,v in dic2:
...     print k," = == =",v
... 
1  = == = one
3  = == = three
2  = == = two

字典的迭代

顺便提一下字典的迭代。

# 1. 迭代字典的key  
# 1)方法1
>>> for x in dic.keys():
...     print x
... 
1
3
2
# 2) 方法2
>>> for x in dic.iterkeys():
...     print x
... 
1
3
2

#2. 迭代字典的value
# 1)方法1
>>> for v in dic.values():
...     print v
... 
one
three
two
# 2)方法2
>>> for v in dic.itervalues():
...     print v
... 
one
three
two

#迭代key-vlaue对

# 迭代键值对  
>>> for k,v  in dic.items():
...     print k,":",v
... 
1 : one
3 : three
2 : two

>>>for k, v in d.iteritems():  
...     print k, ":", v 
<think>好的,我现在需要回答用户关于Python字典items()方法的使用说明。用户已经提供了几个引用资料,我需要先仔细阅读这些引用,理解其中的内容,然后整理出一个清晰的回答。 首先,引用[1]提到items方法返回一个包含所有字典项的列表,而iteritems返回迭代器,不过可能是在Python 2中的情况,因为Python 3中已经没有iteritems了。引用[2][3]给出了具体的例子,显示items()返回的是由(key, value)元组组成的列表,不过Python 3中实际返回的是dict_items对象,不是列表,但可以迭代。引用[4]的输出结果也显示为dict_items类型。 接下来,我需要确定用户的问题是什么版本的Python。用户提供的引用中,引用[1]提到了iteritems,这可能让用户混淆Python 23的区别。所以在回答时需要明确指出Python版本差异。 用户的问题主要想了解items()的用法,包括它的功能、返回值类型、如何遍历,以及可能的应用场景。需要结合引用中的例子,说明基本用法,比如如何获取键值对,如何遍历,以及可能的注意事项,如返回的对象是否是视图,是否会随字典变化等。 还需要检查是否有错误的信息,比如引用[1]说items返回列表,这在Python 3中不准确,应该指出版本差异。同时,引用中的例子可能混合了不同版本的行为,需要澄清。 最后,生成相关问题,需要围绕items()方法的相关知识点,如返回类型、与iteritems的区别、应用场景、性能考虑等。</think>### Python 字典 `items()` 方法使用说明 `items()` 是 Python 字典的内置方法,用于获取字典中所有键值对的可迭代视图。以下是详细说明: --- #### 1. **基本功能** - **作用**:返回字典中所有键值对的可迭代对象,每个元素为 `(键, 值)` 的元组形式。 - **返回值类型**: - **Python 3**:返回 `dict_items` 对象(动态视图,随字典修改自动更新)[^2][^3]。 - **Python 2**:返回包含键值对的列表(静态快照)[^1]。 --- #### 2. **基本用法** ```python # 定义字典 d = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} # 调用 items() 方法 items_view = d.items() # 输出结果(Python 3示例) print(items_view) # dict_items([('name', 'Alice'), ('age', 25), ('city', 'Beijing')]) ``` --- #### 3. **遍历键值对** 通过 `items()` 可遍历字典的所有键值对: ```python for key, value in d.items(): print(f"{key}: {value}") # 输出: # name: Alice # age: 25 # city: Beijing ``` --- #### 4. **注意事项** - **动态视图特性**(Python 3): 若字典内容被修改,`dict_items` 对象会同步更新[^2]。例如: ```python d = {'a': 1, 'b': 2} items = d.items() d['c'] = 3 print(items) # dict_items([('a', 1), ('b', 2), ('c', 3)]) ``` - **转换为列表**(按需使用): 若需静态列表,可用 `list(d.items())` 转换。 --- #### 5. **与 `iteritems()` 的区别**(仅限 Python 2) - **`items()`**:返回列表,占用内存较多。 - **`iteritems()`**:返回迭代器,节省内存但已废弃(Python 3中由 `items()` 替代)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值