鄙人学习笔记
开发工具:Spyder
元组
定义
元祖是由一系列变量组成的不可变序列容器。
备注:不可变是指一但创建,不可以再添加/删阵。
基本操作
创建空元祖和有默认值的元组
代码:
t01 = ()
t02 = tuple()
print(t01, '\n', t02)
print('--------------')
#创建具有默认值的元组
t01 = (1, 2, 3)
t02 = tuple("abc")
t03 = (1, 2, [3, 4])
print(t01, '\n', t02, '\n', t03)
控制台输出:
修改及获取
元祖是不可变序列容器,虽然元祖元素不可变,但是元组内引用对象内的元素可以变。
代码(改变元祖元素):
t01 = (1, 2, [3, 4])
t01[1] = 100
控制台输出:
报错了呢~
代码(改变元组内引用对象内的元素):
t01 = (1, 2, [3, 4])
t01[2][0] = 100
print(t01)
控制台输出:
作用
①元组与列表都可以存储一系列变量,但是由于列表会预留内存空间,所以可以增加元素。
②元组会按需分配内存,所以如果变量数量固定,建议使用元组,因为通常占用空间更小。
字典
定义
字典是一种可变容器模型,且可存储任意类型对象。
字典的每个键值对key=>value 用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 。
- 格式
{key1 : value1, key2 : value2 }
基本操作
创建空字典和有初始值的字典
代码:
#创建空字典
d01 = {}
d02= dict()
print(d01, '\n', d02)
print('--------------')
#创建有初始值的字典
d01 = {"A":1,"B":2}
d02 = dict([("C", 3), ("D", 4)])
print(d01, '\n', d02)
控制台输出:
增加,修改,读取,删除
代码:
d01 = {"A":1,"B":2}
#增加
d01["C"] = 3
print(d01)
#修改
d01["A"] = 10
print(d01)
#读取
#若字典中没有"B"这个key则会报错,所以最好先进行判断
if "B" in d01:
print(d01["B"])
#删除
del d01["B"]
print(d01)
控制台输出:
获取字典中的键和值
代码:
d01 = {"A":1,"B":2, "C":3}
for item in d01.items():
print(item[0],"-",item[1])
print("--------------")
for key,value in d01.items():
print(key, "-", value)
控制台输出:
字典推导式
- 语法
{键:值的表达式 for 键,值 in 可迭代对象 if 条件}
- 例子
代码:
d01 = {item:item**2 for item in range(1, 10) if item % 2 == 0}
print(d01)
结果:
案例
代码:
list01 = ["小黄", "大白", "奥尼尔"]
list02 = [2, 4, 6]
list03 = [("A", 1), ("B", 2), ("C", 3)]
d01 = {list01[i]:list02[i] for i in range(len(list01))}
d02 = {key:value for key,value in list03}
print(d01)
print(d02)
结果: