python 数据类型 dict(字典)

快捷键复习

alt + enter  导入需要的模块。
alt + r      替代
ctrl+ /      注释
ctrl + shitf + F    项目内查找关键字
ctrl + f     文件内查找关键字

字符串的方法复习

find            查找
replace         替代   
split           分割      
"".join         插入
format          格式化
startwith       检查字符串是否是以 obj 开头 False
endswith        检查字符串是否是以 obj 结束
strip           头尾去空格

字典

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

一个简单的字典实例:

{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

访问字典里的值

把相应的键放入熟悉的方括弧,如下实例:

mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

print("你的名字叫:",mes["name"])
print(mes["age"],"岁")
print("来自",mes["address"])


你的名字叫: 陈淮聪
26 岁
来自 广东

字典的方法

* dict.get()*

获取key的返回值
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

print(mes.get("name"))

dict.pop()

删除字典给定键 key所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

print(mes.pop("age"))
print(mes)

dict.copy()

返回一个字典的浅复制,如果已赋值的形式,结果会随着操作改变
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
n = mes
m = mes.copy()
print("address:",mes.pop("address"))
print("n = mes:",n)
print("m = mes.copy:",m)

address: 广东
n = mes: {'name': '陈淮聪', 'age': 26}
m = mes.copy: {'name': '陈淮聪', 'age': 26, 'address': '广东'}

dict.keys()

以列表返回一个字典所有的键
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

print(mes.keys())

dict_keys(['name', 'age', 'address'])

dict.values()

以列表返回字典中的所有值
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

print(mes.values())

dict_values(['陈淮聪', 26, '广东'])

dict.items()

以列表返回可遍历的(键, 值) 元组数组
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

print(mes.items())
for item in mes.items():
    print(item)


dict_items([('name', '陈淮聪'), ('age', 26), ('address', '广东')])
('name', '陈淮聪')
('age', 26)
('address', '广东')

dict.setdefault()

和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

print(mes.setdefault("age"))
print(mes.setdefault("school"))
print(mes)

26
None
{'name': '陈淮聪', 'age': 26, 'address': '广东', 'school': None}

dict.update()

把字典dict2的键/值对更新到dict里,相当于+
n = dict(a = 1 , b = 2)
m = dict(x = 10, y = 100)

n.update(m)
print(n)

{'a': 1, 'b': 2, 'x': 10, 'y': 100}

update使用方式,先声明,再使用

a = dict()
n = dict(a = 1 , b = 2)
m = dict(x = 10, y = 100)

a.update(n)
print(a)

{'a': 1, 'b': 2}

dict.clear()

删除字典内所有元素
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}

mes.clear()
print(mes)

{}

zip

高阶函数
l1 = ["a","b","c","d"]
l2 = [1,2,3,4]
print(dict(zip(l1,l2)))

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

python2 和 python3 的区别

print(a.items()) 全部存到内存中。

python2存在:print(a.iteritems()) 每循环一次取一次对象

python3中 dict.items 集成了python2_dict.iteritems
a = dict()
n = dict(a = 1 , b = 2)
m = dict(x = 10, y = 100)
print(type(n.items()))

<class 'dict_items'>
强制类型转换
list()
int()
str()
float()
tuple()
dict()
help()
isinstance()
判断是否为已知的类型
    l1 = ["a","b","c","d"]
    l2 = [1,2,3,4]
    l3 = (dict(zip(l1,l2)))

    print(isinstance(l1,list))
    print(isinstance(l3,dict))

enumerate()

enumerate(sequence, [start=0])
sequence 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置。
l1 = ["a","b","c","d"]

for i,j in enumerate(l1):
    print(i,j)

0 a
1 b
2 c
3 d


l1 = ["a","b","c","d"]


for x in enumerate(l1):
    print(x)


(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值