Python 基础七:字典与集合


1 字典

1.1 简介

当看到字典这个词时,有些人包括我自己在内,首先映入眼帘的便是新华字典
在这里插入图片描述

① 今天我们说的字典(dict)是 Python 的数据结构,因为都叫字典,我们不用想也知道它们是十分相似的,它们的内容都是以键-值(key-value)的方式存在的。

② dict 拥有良好的查询速度,dict 中的值可以是任意 Python 对象,多次对一个 key 赋 value,后面的 value 会把前面的 value 覆盖。

1.2 使用
① 字典的内容在花括号 {} 内,键-值(key-value)之间用冒号 : 分隔,键值对之间用逗号 , 分隔,比如创建字典 d,如下所示:
 d = {'name':'小李', 'age':'20'}

# 使用 dict 函数
# 方式一
l = [('name', '小李'), ('age', 20)]
d = dict(l)
# 方式二
d = dict(name='小李', age='20')

# 空字典
d = dict()
d = {}
② 字典中的值通过 key 进行访问,如下所示:
>>> d = dict(name='小李', age='20')
>>> d['name']
'小李'

# 使用 get 方法
>>> d.get('name')
'小李'
③ 修改操作,以修改 age 为例,如下所示:
>>> d = dict(name='小李', age='20')
>>> d['age'] = '22'
>>> d['age']
'22'
④ 清空集合,如下所示:
>>> d = dict(name='小李', age='20')
>>> d.clear()
>>> d
{}
⑥ 获取字典的长度,如下所示:
>>> d = dict(name='小李', age='20')
>>> len(d)
2

2 集合

2.1 简介

集合(set)与字典相同均存储 key,但也只存储 key,因 key 不可重复,所以 set 的中的值不可重复,也是无序的。

2.2 使用

集合使用花括号 {} 或者 set() 函数创建,如果创建空集合只能使用 set() 函数,以创建集合 s 为例,如下所示:

s = {'a', 'b', 'c'}

# 使用 set 函数
s = set(['a', 'b', 'c'])

# 空集合
s = set()
① 集合中重复的元素会被自动过滤掉,如下所示:
>>> s = {'a', 'a', 'b', 'c', 'c'}
>>> s
{'a', 'c', 'b'}
② 添加元素可以使用 add 或 update 方法,如果元素已经存在,则不进行操作,如下所示:
>>> s = {'a', 'b', 'c'}
>>> s.add('d')
>>> s
{'a', 'd', 'c', 'b'}
>>> s.update('e')
>>> s
{'a', 'b', 'e', 'd', 'c'}
 

# 添加已经存在的元素 a
>>> s.add('a')
>>> s
{'a', 'b', 'e', 'd', 'c'}
③ 删除元素使用 remove 方法,如下所示:
>>> s = {'a', 'b', 'c'}
>>> s.remove('c')
>>> s
{'a', 'b'}
④ 清空集合使用 clear 方法,如下所示:
>>> s = {'a', 'b', 'c'}
>>> s.clear()
>>> s
set()
⑤ 获取集合的长度,同样使用 len 方法,如下所示:
>>> s = {'a', 'b', 'c'}
>>> len(s)
3
### DeepSeek 训练成本较低的原因 DeepSeek 的训练成本之所以相对较低,可以从多个方面来解释。一方面,在现代人工智能的发展背景下,AI技术已经逐渐普及并成为基础设施的一部分[^1]。这意味着许多基础工具和服务的成本大幅降低,使得像DeepSeek这样的项目能够利用现成的技术栈和平台。 另一方面,特定于DeepSeek本身的特性也对其低成本起到了重要作用: - **数据效率高**:通过优化算法设计,DeepSeek能够在较少的数据集上达到较好的性能表现。这不仅减少了获取大量标注数据的需求,还降低了存储和传输这些数据所需的资源消耗。 - **硬件利用率好**:有效的分布式计算架构允许更充分地利用现有的GPU/CPU集群能力,从而提高每单位时间内的吞吐量,并减少完成相同任务所需的时间长度。 - **自动化程度强**:高度自动化的超参数调优过程可以节省人工干预带来的额外开销;同时借助强化学习等方法实现自我改进机制,则进一步增强了系统的自适应性和鲁棒性。 综上所述,正是由于上述因素共同作用的结果,才让DeepSeek在整个机器学习或AI开发过程中保持了较为低廉的培训费用水平。 ```python # 这里提供一段简单的Python伪代码展示如何评估模型训练成本 def evaluate_training_cost(model, dataset_size): # 假设函数用于估算基于不同规模数据集下的预期训练耗时及相应花费 time_per_epoch = estimate_time_for_one_epoch(dataset_size) epochs_needed = determine_epochs_until_convergence() total_time_spent = time_per_epoch * epochs_needed hardware_costs = calculate_hardware_usage_fee(total_time_spent) data_acquisition_costs = compute_data_collection_expenses(dataset_size) return hardware_costs + data_acquisition_costs ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值