第五章 数据结构6

第五章 数据结构6

相关代码如下

from sys import getsizeof
values = (x * 2 for x in range(100000000))
print("gen:", getsizeof(values))
print(values)
# print(len(values)) 会报错,因为生成器是无大小的,仅在遍历时才会有值
values = [x * 2 for x in range(10)]
print("list:", getsizeof(values))
# 生成器所占内存皆一致,且在大额的数值处理情况下比列表所占内存更为简洁
# 二者区别在于定义时的括号类型,生成器仅在使用时进行遍历

# 拆包操作
first = [1, 2]
second = [3]
values = [*first, "a", *second, *"Hello"]  # 拆包操作符*可将列表、字符串等拆分为单独个体
print(values)

first = {"x": 1}
second = {"x": 10, "y": 2}
combined = {**first, **second, "z": 1}  # 对待字典时,拆包符为**,并且若对应键值有重复,仅保留最后一项
print(combined)

输出内容如下

gen: 112
<generator object <genexpr> at 0x0000028033836510>
list: 184
[1, 2, 'a', 3, 'H', 'e', 'l', 'l', 'o']
{'x': 10, 'y': 2, 'z': 1}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值