python get函数的用法
一、基本语法
Python字典的get()函数是一个内置函数,可以用于获取一个给定键的值。get()函数的基本语法如下:
```python
(key, default=None)
```
dict表示要获取的字典,key表示要获取的键值,default表示如果键值不存在时返回的默认值。默认值是可选的,如果没有指定默认值,则返回None。这个函数可以被所有的Python字典调用,也可以用于其他类型,如Python defaultdict和OrderedDict等。
通过get()函数获取值不会修改原始字典。如果要更改原始字典,请使用索引。
二、返回值
get()函数的返回值取决于是否指定了默认值和字典中是否存在指定键值。
如果字典中存在指定键,则返回该键对应的值;
如果字典中没有指定键,则返回默认值。如果没有指定默认值,则返回None。
下面是一些示例:
```python
# 创建字典
my_dict = {'name':'小明', 'age':18}
# 获取键为'name'的值
name_value = ('name')
print(name_value) # 输出:小明
# 获取键为'gender'的值
gender_value = ('gender')
print(gender_value) # 输出:None
# 获取键为'gender'的值,同时指定默认值
字符串函数gets怎么重新定义 gender_value = ('gender', '未知')
print(gender_value) # 输出:未知
```
三、实例
下面我们来看一些实际应用中get()函数的例子。
1.获取字典中所有键的值
我们可以使用字典的keys()方法来获取所有键值的列表,并通过循环来获取每一个键的值,如下所示:
```python
my_dict = {'name':'小明', 'age':18, 'gender':'男'}
# 获取所有键的值
for key in my_dict.keys():
value = (key)
print(key, value)
```
输出结果:
```
name 小明
age 18
gender 男
```
2.统计列表中各元素出现的次数
假设我们有一个列表,我们想知道列表中每个元素出现的次数。可以将列表中的元素作为字典的键,出现的次数作为键的值,循环遍历列表,统计每个元素的出现次数,如下所示:
```python
my_list = [1, 2, 3, 1, 4, 2, 1]
# 统计列表中各元素的出现次数
count_dict = {}
for item in my_list:
count_dict[item] = (item, 0) + 1
# 输出统计结果
for key, value in count_dict.items():
print(key, value)
```
输出结果:
```
1 3
2 2
3 1
4 1
```
3.获取字典中的子集
我们可以使用字典的items()方法来获取所有键值对,并筛选出特定的键值对,构造一个子字典。如下所示:
```python
my_dict = {'name':'小明', 'age':18, 'gender':'男', 'class':'一班'}
# 获取子字典
sub_dict = {}
for key, value in my_dict.items():
if key == 'name' or key == 'age':
sub_dict[key] = value
# 输出子字典
print(sub_dict)
```
输出结果:
```
{'name': '小明', 'age': 18}
```
四、使用技巧
1.获取嵌套字典中的值
如果字典是嵌套的形式,即在一个字典中又嵌套了其他字典,则可以使用多个get()函数来获取嵌套字典中的值,如下所示:
```python
# 获取字典中的值
name = ('name')
```
输出结果:
```
小明 xiaoming@abc
```
2.设置默认值
我们可以使用默认值来处理字典中不存在的键值。在计算一个字符串中每个字符的出现次数时,我们可以将所有的字符都放入字典中,不存在的字符设定默认值0,代码如下所示:
```python
my_str = 'hello, world'
# 计算字符串中字符出现的次数
count_dict = {}
for char in my_str:
count_dict[char] = (char, 0) + 1
# 输出统计结果
for key, value in count_dict.items():
print(key, value)
```
输出结果:
```
h 1
e 1
l 3
o 2
, 1
1
w 1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论