Python基础知识2:字典

字典一种key - value 的数据类型,就像上学用的字典通过拼音查找汉字一样;字典是Python语言中唯一的映射类型。字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。

映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。

1)字典的创建:

adict = {}

adict =

字典的特点:

特点:

1、键与值用冒号“:”分开;

2、项与项用逗号“,”分开;

3、字典中的键key必须是唯一的,而值可以不唯一,具有天然去重功能。

4、字典是无序的

#案例1:

dict1={'a1':['值1',1,21],

'a2':['值2',2,22],

'a3':['值3',3,23],

}

print("dict1",dict1)

dict2 = {"a":[1,2],"b":{"c":"d"}}# 值可以是任意值

#案例2

print("dict2",dict2)

print('dict2中的元素:',dict2["a"][1])

执行结果:

2)常见方法:字典

Python字典包含了以下内置函数:

1、cmp(dict1, dict2):比较两个字典元素。

2、len(dict):计算字典元素个数,即键的总数。

3、str(dict):输出字典可打印的字符串表示。

4、type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置方法:

1、radiansdict.clear():删除字典内所有元素

2、radiansdict.copy():返回一个字典的浅复制

3、radiansdict.fromkeys():创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

4、radiansdict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值

5、radiansdict.has_key(key):如果键在字典dict里返回true,否则返回false

6、radiansdict.items():以列表返回可遍历的(键, 值) 元组数组

7、radiansdict.keys():以列表返回一个字典所有的键

8、radiansdict.setdefault(key, default=None):和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default

9、radiansdict.update(dict2):把字典dict2的键/值对更新到dict里

10、radiansdict.values():以列表返回字典中的所有值

案例1:增加、修改 元素

#print('-----------增加元素----------------')
dict1={'a1':['值1',1,21],
'a2':['值2',2,22],
'a3':['值3',3,23],
}
print("dict1",dict1)
#增加一个值
dict1['a4']=['值4',4,24]
print("dict增加值a4后",dict1)
#修改值
dict1['a4'][]=['值42']
print("dict修改a4",dict1)
执行结果:案例2:删除
#print('-----------删除元素----------------')
#pop删除元素
dict1.pop("a4")
print("pop删除元素",dict1)
#del删除元素
deldict1["a3"]
print("del删除元素",dict1)
#清空字典中的所有项或元素;
dict1.clear()
print("clear删除元素",dict1)
deldict1
print("del删除dict1",dict1)
执行结果:
案例3:查找或判断是否存在的三种方法
案例2:查找或判断是否存在的三种方法
#print('-----------查找是否存在的方法----------------')
info={'a1':['值1',1,21],
'a2':['值2',2,22],
'a3':['值3',3,23],
'a4':['值4',4,24]
}
#1)方法1,用in判断,同样还有not in
t='a4'ininfo
print('in的结果',t)
#2)方法2,用get判断
t2=info.get('a4')
print('get方法,存在返回值',t2)
#如果get的值不存在,则返回none
t3=info.get('a5')
print('get方法,存在返回值',t3)
#方法3,直接引用,如果key存在则有值返回,如果不存在,则返回错误
t4=info['a4']
print('直接引用',t4)
t5=info['a5']
print('直接引用,但值不存在',t5)#无返回结果,错误
执行结果:
案例3:items、key、value
info={'a1':['值1',1,21],
'a2':['值2',2,22],
'a3':['值3',3,23],
'a4':['值4',4,24]
}
#遍历字典的key(键)
print("遍历字典的key:")
forkeyininfo.keys():
print(key)
#遍历字典的value(值)
print("遍历字典的value:")
foriininfo.values():
print(i)
#遍历字典的项,返回一个元祖
print("遍历字典的项:")
foriininfo.items():
print(i)
#遍历字典的key-value
print("遍历字典的key-value:")
fori,jininfo.items():
print(i,j)

执行结果:

案例4:字典整理,删除部分key值

删除上述内容不是字典的key

本文来自企鹅号 - 乐想屋媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Nian糕的私人厨房

ECMAScript6 解构赋值

在 ES6 中,关于解构的含义为:允许按照一定模式,从数组和对象中提取值,对变量进行赋值,而数组、对象和字符串,都能通过这种方式进行赋值

754
来自专栏猿人谷

JDK1.7源码分析01-Collection

同步发布:http://www.yuanrengu.com/index.php/20180221.html Java的集合类主要由两个接口派生而出:Collec...

3365
来自专栏Ryan Miao

java继承覆盖与向上转型,权限

子类可以覆盖父类的非final成员变量和重写非final方法 private私有变量和方法只能在类的内部使用,因此子类继承的同时会被隐藏,相当于不继承 prot...

32110
来自专栏Jed的技术阶梯

详解 final 修饰符

被 final 修饰的实例变量必须显示的指定初始值,而且只能在以下3个位置指定初始值:

1514
来自专栏mathor

1小时掌握c++面向对象编程

使用对象指针实参仅将对象的地址值传递给形参,而不进行副本的拷贝,这样可以提高运行效率,减少时间开销

751
来自专栏Java 源码分析

静态内部类

定义:静态内部类,定义在类中,任何方法外,用static定义;静态内部类只能访问外部类的静态成员。 注意点: 一般情况下,如果一个内部类不是被定义成静态内部类,...

3168
来自专栏机器学习算法与Python学习

python: sort, sorted, reverse

python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两中方法还可以加...

3738
来自专栏技术碎碎念

python3 入门 (四) 类与继承

Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。...

39312
来自专栏marsggbo

strtol函数 将字符串转换为相应进制的整数

+----------------+ |   strtol   | +----------------+ i.e. string to...

2287
来自专栏WindCoder

在数组中查找次大值,并与最后一个元素交换—C语言

1881

扫码关注云+社区

领取腾讯云代金券