Python基础

字典

思考:

场景1

如果有列表

li=['Python','Java','C++']

需要对“Python”这个名字写错了,通过代码修改:

li[0]="Python"

如果列表的顺序发生了变化,如下

li={'Java','C++','Python'}

此时就需要修改下标,才能完成名字的修改

li[2]="Python"

有没有方法,既能存储多个数据,还能在访问元素的很方便就能够定位到需要的那个元素呢?

答:

​ 字典

场景二:

学生信息列表,每个学生信息包括学号,姓名、年龄登,如何从中找到某个学生的信息?

>>>students=[201801,"张三",18],[201802,"李四",19],[201803,"王二",17], ...]

循环遍历?这样很麻烦。

实际生活中,我们还经常用汉语字典,英汉字典等等。

程序中的字典:

info={"username":"lilei","age":18,"Class":"one"}

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。字典是一种可变数据类型,且可存储任意类型对象。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

格式:

​ {key1:value1,key2:value2,…}

描述:

​ 1.键-值对中间用冒号(":")连接;

​ 2.key:value组成字典里的一个元素

​ 3.键-值对(元素)之间用逗号(",")隔开;

​ 4.整个字典用花括号“{}”包裹起来.

字典的创建

创建一个空字典

dict={
   }
print(type(dict))

创建一个有多个值的字典

1.直接赋值法:d={key1:value1,key2:value2}如:

>>> info={
   "usrname":"Lilei", "age": 18, "Class": "one"}
>>> info
{
   "usrname":"Lilei", "age": 18, "Class": "one"}

2.通过函数创建字典(强制转换):

#法1
>>> info={
   "usrname":"Lilei", "age": 18, "Class": "one"}
>>> info
{
   "usrname":"Lilei", "age": 18, "Class": "one"}
#法2
>>> info = dict(usrname = "Lilei", age = 18, Class = "one")
>>> info
(usrname = "Lilei", age = 18, Class = "one")
#法3
>>> info = dict([['name', 'LiLei'], ['age', 18]])
>>> info
('name', 'LiLei'), ('age', 18)
#法4
>>> info = dict((('name', 'LiLei'), ('age', 18)))
>>> info
('name', 'LiLei'), ('age', 18)
#法5
>>> info = dict([('name', 'LiLei'), ('age', 18)])
>>> info
('name', 'LiLei'), ('age', 18)
#法6
>>> info = dict((['name', 'LiLei'], ['age', 18]))
>>> info
('name', 'LiLei'), ('age', 18)

3.通过字典的fromkeys方法创建字典

>>>info=dict.fromkeys("Hello")#如果没有指定默认值,默认为None;
>>>info
{
   'H':None,'e':None,'l',None,'o':None}
>>>info=dict.fromkeys(["Lilei","lee","Jack","123456"])#给每个元素设置默认值为"123456"
>>>info
{
   'Lilei':'123456','Lee':'123456','Jack':'123456'}
>>>

字典的常见操作

字典值的访问(查的一种)

字典是无序的,不能通过索引值俩获取值。

>>> info=info[2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 2
>>>
  • 通过键(key)访问值(value)
  • key值不存在的湿乎乎,会报错。
>>> info={
   "Username":"Lilei","age":18,"Class":"one"}
>>> info["Username"] #通过关键字访问对于的值
'Lilei'
>>> info["age"]
18
>>> info["username"] #没有对应的key,报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'username'
>>>
  • 使用get访问值(value)

    不确定字典中是否存在某个键而又想获取其只时,可以使用get方法,还可以设置默认值。

  • 当key不存在的,不会抛出异常,返回None

>>> info={
   "Username":"Lilei","age":18}
>>> info.get("Username")
'Lilei'
>>> info.get("job") #当key不存在,不会抛出异常,返回None
>>> type(info.get("job"))
<clas
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值