python的6种基本数据类型--字典

 

字典

字典的定义与特性

字典是Python语言中唯一的映射类型。
定义:{key1:value1,key2:value2}
  1、键与值用冒号":"分开;
  2、项与项用逗号","分开;
特性
  1.key:value结构
  2.key必须可hash、且必须为不可变数据类型、必须唯一(数字、字符串、元组)
  3.value可存放任意多个值、可修改、可以不唯一
  4.无序 
 
 
字典的创建与常见操作
字典的创建

 # a.直接用 {} 创建,key:value对应
>>> skills = {"s1":"python","s2":"linux","s3":"html/css","s4":"JavaScript"}
>>> skills
{'s1': 'python', 's2': 'linux', 's3': 'html/css', 's4': 'JavaScript'} # b.用dict转换
>>> skills_1 = dict(s1="python",s2="linux")
>>> skills_1
{'s1': 'python', 's2': 'linux'}
>>> skills_1 = dict("s1"="python","s2"="linux") # 不能这样创建,本身有歧义,前后都是两个字符串
SyntaxError: keyword can't be an expression # 将本身就是字典转换成dict
>>> skills_2 = dict({"s1":"python","s2":"linux"})
>>> skills_2
{'s1': 'python', 's2': 'linux'} # 将形如key-value结构的转换为字典
>>> skills_3 = dict((["s1","python"],["s2","linux"]))
>>> skills_3
{'s1': 'python', 's2': 'linux'}
>>> skills_3 = dict([["s1","python"],["s2","linux"]])
>>> skills_3
{'s1': 'python', 's2': 'linux'}
>>> skills_3 = dict([("s1","python"),("s2","linux")])
>>> skills_3
{'s1': 'python', 's2': 'linux'} # key 为元组的字典
>>> skills_3 = dict([[(1,2),"python"],[(21,21),"linux"]])
>>> skills_3
{(1, 2): 'python', (21, 21): 'linux'} 给多个键赋相同的值
>>> dic = {}.fromkeys(['s1','s2'],['python','linux'])
>>> dic
{'s1': ['python', 'linux'], 's2': ['python', 'linux']}
dic1 = {}.fromkeys(['s1','s2'],['python'],['linux']) #最多两个变量,多了报错
Traceback (most recent call last): # 第二个变量是为共用的,当为可变类型时,可以修改添加,修改,
File "<pyshell#71>", line 1, in <module>
dic1 = {}.fromkeys(['s1','s2'],['python'],['linux'])
TypeError: fromkeys expected at most 2 arguments, got 3
>>> dic['s1'].append(1)
>>> dic
{'s1': ['python', 'linux', 1], 's2': ['python', 'linux', 1]}
>>> dic['s1'].remove('python')
>>> dic
{'s1': ['linux', 1, 1], 's2': ['linux', 1, 1]}

字典的常见操作

 键、值、键值对
dic.keys() 返回一个包含字典所有KEY的列表;
dic.values() 返回一个包含字典所有value的列表;
dic.items() 返回一个包含所有(键,值)元祖的列表; >>> skills
{'s1': 'python', 's2': 'linux', 's3': 'html/css', 's4': 'JavaScript'}
>>> skills.keys
<built-in method keys of dict object at 0x00000209A130DCF0>
>>> skills.keys()
dict_keys(['s1', 's2', 's3', 's4'])
>>> skills.values()
dict_values(['python', 'linux', 'html/css', 'JavaScript'])
>>> skills.items()
dict_items([('s1', 'python'), ('s2', 'linux'), ('s3', 'html/css'), ('s4', 'JavaScript')]) 新增
dic['new_key'] = 'new_value'
dic.setdefault(key,None) 如果字典中不存在Key键,由 dic[key] = default 为它赋值,这里defalut=None,实际创建需要填value 删除
dic.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
dic.clear() 删除字典中的所有项或元素;
>>> skills.pop('s4')
'JavaScript'
>>> skills
{'s1': 'python', 's2': 'linux', 's3': 'docker'}
>>> skills
{} 修改
dic['key'] = 'new_values' 如果key在字典中存在,'new_value'将会替代原来的value值,不存在则创建
dic.update(dic2) 将字典dic2的键值对添加到字典dic中 查看
dic['key'] 返回字典中key对应的值,若key不存在字典中,则报错;
dict.get(key,default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None) 循环(3)
a. for i in dic.keys() 等同于 for i in dic
>>> for k in skills.keys():print(k)
s1
s2
s3
s4
>>> for k in skills:print(k)
s1
s2
s3
s4 b. for k,v in dic.items() >>> for k,v in skills.items():print(k,v)
s1 python
s2 linux
s3 docker
s4 JavaScript
c.
>>> for k,v in enumerate(skills):print(k,v) 0 s1
1 s2
2 s3
3 s4
>>> for k,v,j in enumerate(skills):print(k,v,j) Traceback (most recent call last):
File "<pyshell#48>", line 1, in <module>
for k,v,j in enumerate(skills):print(k,v,j)
ValueError: not enough values to unpack (expected 3, got 2) 长度
len(dic)

python的6种基本数据类型--字典的更多相关文章

  1. Python:6种标准数据类型

    原文地址https://www.cnblogs.com/qin1991/p/5910145.html #!/usr/bin/python3 #python的基本语法和数据类型 #python3中 一行 ...

  2. Python全栈之路----数据类型—字典

    字典:可变,一种key-value的数据类型 info = { 'stu1101' : 'TengLan Wu' , 'stu1102' : 'LongZe Luola' , 'stu1103' : ...

  3. Python知识点入门笔记——特色数据类型(字典)

    Python中字典是一些列键 (key) 值 (value) 对组成的,形式如下 {键1:值1,键2:值:2} 每个键值对用冒号隔开,每对之间用逗号隔开 键必须是唯一的,必须是不可变的,如字符串,数字 ...

  4. python全栈开发笔记---------数据类型---字典方法

    def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...

  5. python全栈开发笔记---------数据类型-----字典dict

    字典 #dict #1.基本结构 info= { "k1" : "v1", #键值对 "k2" : "v2" } ### ...

  6. Python的三种基本数据类型

    数字 int(整型) long(长整型),python对长整型没有限制,理论上可以无限大.python3后没有long了. float   字符串   加了引号的都是字符串.   单引号和双引号没有约 ...

  7. python的6种基本数据类型--集合

    特征 1.确定性(元素必须可hash) 2.互异性(去重) 3.无序性(集合中的元素没有顺序,先后之分) >>> s = {1,1,1,2,2,3,4,5,6,7} # 创建 > ...

  8. Python 数据类型--字典类型

    字典 dict 字典是Python的另一种有序的可变数据结构,且可存储任意类型对象. 字典是一种键值对的数据容器,每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典 ...

  9. python 的几种数据类型

    列表  列表是 Python  的主力数据类型.当提到 " 列表 " 时,您脑海中可 能会闪现" 必须进一步声明大小的数组,只能包含同一类对象 "  等想法.千 ...

随机推荐

  1. JAVA读取XML文件并解析获取元素、属性值、子元素信息

    JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取  InputStream   DocumentBuilderFactory   Element     Node 前言 最 ...

  2. 《centos系列》git的安装

    centos 6.5安装git 1.安装编译git时需要的包 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib ...

  3. 小服务程序(Java Servlet)

    一般来说,servlet说起来挺高大上的,但是其实实际就是一个能够交互地浏览和修改页面数据,生成一个动态的Web页面. Servlet方法,页面实施请求数据,后台服务器给出响应,将数据返回到页面中去. ...

  4. Java_13.1.1 字符串的应用

    1获取一个字符串中,另一个字符串出现的次数 思想:      1. indexOf到字符串中到第一次出现的索引      2. 找到的索引+被找字符串长度,截取字符串       3. 计数器++ p ...

  5. IntelliJ IDEA return null with ClassLoader.getSystemResourceAsStream(“configFilename”));

    参考https://stackoverflow.com/questions/49470053/intellij-idea-return-null-with-classloader-getsystemr ...

  6. nginx: [emerg] mkdir() "/var/temp/nginx/client" failed (2: No such file or directory)

    报错信息 [root@bogon sbin]# ./nginx nginx: [emerg] mkdir() : No such file or directory) 解决方法 [root@bogon ...

  7. redis创建集群——[ERR] Sorry, can't connect to node 192.168.X.X

    创建集群或者连接时会出现错误:只能用127.0.0.1创建 这是需要修改redis.conf 把bind注释掉 protected-mode no 有些旧版本注释requirepass 技术交流群:8 ...

  8. go语言使用go-sciter创建桌面应用(三) 事件处理,函数与方法定义,go与tiscript之间相互调用

    sciter处理脚本tiscript,用于处理UI交互中的一些逻辑,跟js很像,但又有点区别,对前端熟悉的人应该能很快上手. tiscrip脚本文档 https://sciter.com/develo ...

  9. sqlserver的数据库状态——脱机与联机

    1.数据库状态: online:可以对数据库进行访问 offline:数据库无法访问 2.查看数据库状态的方法: (1)使用查询语句: SELECT state_desc FROM SYS.datab ...

  10. mysql 安装后出现 10061错误

    #服务器端  提示 The vervice already exists! The current server installed #mysqld 服务没有启动 解决办法 移除原来的mysql服务  ...