Python随记(三)字典

本文介绍了Python中的字典数据结构,包括其创建方式、基本操作及常用方法。详细解释了字典如何通过键来引用值,并提供了创建和操作字典的具体示例。

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


Python随记(三)字典


字典(Dictionary)

也是序列(sequence)的一种,是另一种可变容器模型。字典的值并没有特殊的顺序,但是都存储在一个特定的键(Key)下。键可以是任意类型对象,如字符串、数字、元组等其他容器模型。

与列表通过编号引用值不同,字典是一种通过名字来引用值的数据结构。这种数据结构称为映射(mapping)。字典是Python中唯一内建的映射类型。

创建字典的目的,就是为了通过轻松查找某个特定的词语(键),从而找到它的定义(值)。

 

1、  创建字典

字典由键和对应值成对组成。

·每个键和它的值之间用冒号(:)隔开,

·项之间用逗号(,)隔开,

·整个字典用一对大括号{}包起来。如下例所示:

D1= {'Alice': '2341',  'Beth': '9102',  'Cecil': '3258'}

注意:键必须独一无二,但值则不必。

值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。

   

     也可以用dict( )类型,通过其他映射(比如其他字典)或者(键,值)对的序列建立字典

     比如有序列:L1 = [(‘aaa’, 111), (‘ABC’, 123) ]

     D =  dict( L1 )

     那么D就被设置为 { ‘aaa’:111,‘ABC’, 123}

 

2、  字典的基本操作

· led (d) 返回字典d中(键-值)对的数量;

· d[k] 返回关联到键k上的值;

· d[k] = v 将键K关联的值设置为v

· del d[k] 删除键为K的项

· k in d 检查d中是否有含有键为K的项

字典与列表的一些重要区别:

· 成员资格: 表达式k in d查找的是键,这就是我最开始说的,字典通过名字来引用值。

· 键类型:字典的键没必要非得是整型数据,键可以是任意不可变类型。

· 自动添加:即是键起初在字典中并不存在,也可以为它赋值,这样字典就会建立新的项。

 

3、  字典方法

· dict.clear()-----删除字典内所有元素

· dict.copy()-----返回一个字典的浅复制

           这个操作在副本字典中替换(只是把键对应的值换了)值的时候,原始字典不变

           当副本字典中的值被原地修改(比如删除或添加某值)之后,原始字典也变化

           解决方法是使用函数deecopy

· ict.fromkeys(seq[, val]))-----创建一个新字典,以序列seq 中元素做字典的键,val 为字典所

有键对应的初始值

· dict.get(key, default=None)----- 返回指定键的值,如果值不在字典中返回default值

· dict.has_key(key)----- 如果键在字典dict里返回true,否则返回false

· dict.items()-----以列表返回可遍历的(键, 值) 元组数组

· dict.keys()-----以列表返回一个字典所有的键

· dict.setdefault(key, default=None)----- 和get()类似, 但如果键不存在于字典中,将会添加键并

将值设为default

· dict.update(dict2)----- 把字典dict2的键/值对更新到dict里

· dict.values()-----以列表返回字典中的所有值

· pop(key[,default])----- 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

· popitem()-----随机返回并删除字典中的一对键和值。


以下是一个基于随机森林特征重要性排序的代码示例: ```python import geemap.eefolium as geemap from sklearn.ensemble import RandomForestRegressor # 创建一个随机森林回归模型 rf = RandomForestRegressor() # 假设你有一个特征矩阵X和目标变量y X = ... y = ... # 拟合随机森林模型 rf.fit(X, y) # 获取特征重要性度数组 importances = rf.feature_importances_ # 创建一个字典,将特征名称和对应的重要性度量值对应起来 feature_importances = dict(zip(X.columns, importances)) # 根据重要性度量值进行排序 sorted_feature_importances = sorted(feature_importances.items(), key=lambda x: x\[1\], reverse=True) # 打印排序后的特征重要性 for feature, importance in sorted_feature_importances: print(f"{feature}: {importance}") ``` 这段代码使用了geemap库和sklearn库,首先创建了一个随机森林回归模型,然后拟合模型并获取特征重要性度数组。接着,将特征名称和对应的重要性度量值存储在一个字典中,并根据重要性度量值进行排序。最后,打印排序后的特征重要性。你可以根据自己的数据和需求进行相应的修改和调整。 #### 引用[.reference_title] - *1* [GEE随记(二):随机森林特征重要性的排序](https://blog.youkuaiyun.com/weixin_48012947/article/details/128616980)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [随机森林做特征重要性排序和特征选择](https://blog.youkuaiyun.com/weixin_43290383/article/details/123114875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值