前言

python 中有6大标准类型:

数字(Number)
字符串(String)
列表(List)
元组(Tumple)
集合(Set)
字典(Dictionary)

前面已经介绍了上面4种,还有下面两种来介绍一下。

正文

字典

字典看起来非常像json,是的非常非常像,但是我们起码需要明白的是json是一个字符格式,而字典是一种数据结构。

区别:

1)json的key只能是字符串,dict的key可以是任何可hash的对象,例如:字符串、数字、元组等。

2)json的key可以是有序、重复的;dict的key不可重复;

3)json的value只能是字符串、浮点数、布尔值或者null,或者它们构成的数组或者对象;

4)json任意key存在默认值undefined,dict默认没有默认值;

5)json访问方式可以是[],也可以是.,遍历方式分in,of; dict的value仅仅可以下标访问;

6)dict可以嵌套tuple,json里只有数组

7)json:true、false、null

8)dict:True、False、None

9)json中文必须是unicode编码,如“\u6211”

10)json的类型时字符串,字典的类型是dict

总之,他们只是看起来像而已,但是并没有什么血缘关系,可以看做异父异母的亲兄弟吧。

创建一个字典:

# coding: utf-8
test1={'name':"zhang san",
'age':18
}
print(test1);

这样就ok了,是的没有错,这样就建立了一个字典。

值得注意的是,我在上面注释了一行:coding: utf-8,如果没有这个python 无法解析中文,并给你抛出一个异常。

如果你新增一个值,那么:

# coding: utf-8
test1={'name':"zhang san",
'age':18
}
test1["school"]="primary";
print(test1);

这样就可以了,你的key和value 可以是任意类型的值,这和静态语言不一样。

你可以在字典中套用列表:

# coding: utf-8
test1={'name':"zhang san",
'age':18
}
test1["school"]="primary";
test1["friend"]=["tony","tom","lily"];
print(test1);

当然,你还可以在列表中套用字典。

# coding: utf-8
test1={'name':"zhang san",
'age':18
}
test1["school"]="primary";
test1["friend"]=["tony","tom","lily"];
student=[test1];
print(student);

[{'age': 18, 'name': 'zhang san', 'friend': ['tony', 'tom', 'lily'], 'school': 'primary'}]

你会发现,它对数据的支持真的太好了,如果你有一些数据的功能需要处理,python觉得是一个很好的选择。

集合

创建一个集合同样非常的简单:

# coding: utf-8
test1={"1",1}
print(test1);

输出:set(['1', 1])

没错,就是一个大括号,然后里面写了一些object,接着set就生成了。

set 有一些函数,需要都去试一试,你会发现一些非常方便的功能,这样你在开发的时候就不用查找某个查询该怎么写,事实上大部分都提供了。

next Function

重走py 之路 ——字典和集合(二)的更多相关文章

  1. 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符

    [重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符   1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...

  2. 【重走Android之路】【路线篇(二)】知识点归纳

    [重走Android之路][路线篇(二)]知识点归纳   参考:http://blog.csdn.net/xujing81/article/details/7313507   第一阶段:Java面向对 ...

  3. 【重走Android之路】【番外篇】关于==和equals

    [重走Android之路][番外篇]关于==和equals   在实际的编程当中,经常会使用==和equals来判断变量是否相同.但是这两种比较方式也常常让人搞得云里雾里摸不着头脑.下面是我个人做的总 ...

  4. 【重走Android之路】【番外篇】有关于null的一些知识点

    [重走Android之路][番外篇]有关于null的一些知识点   1.首先,到底什么是null? null是Java中的一个关键字,用于表示一个空对象引用,但其本身并不是任何类型也不是属于任何对象. ...

  5. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

  6. 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder

    [重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder   1.String String是Java中的一个final ...

  7. 【重走Android之路】【开篇】序

    [重走Android之路][开篇]   [序]         本人Nodin,偶尔也叫MoNodin,朋友们都喜欢叫我丁,还有个笔名叫陌上幽人,文艺时叫恋风,发奋时叫不肯腐烂的土壤...也许你觉得我 ...

  8. 【重走Android之路】【路线篇(一)】路线图

    总结归纳了J2SE和Android的知识点,自己制订了一套详细的路线图,其中肯定有考虑不全和不合适的地方,欢迎各位大牛批评指正.   详细路线图如下:  

  9. py基础2--列表,元祖,字典,集合,文件

    本节内容 列表.元祖操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 三元运算&生成式&成员运算&解压法&队列堆栈&数据类型转换 1. 列表操作 ...

  10. Python之路【第二篇】: 列表、元组、字符串、字典、集合

    本文内容: -------------------------------------- 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表(list) 序列是Pyt ...

随机推荐

  1. 新零售SaaS架构:订单履约系统架构设计(万字图文总结)

    什么是订单履约系统? 订单履约系统用来管理从接收客户订单到将商品送达客户手中的全过程. 它连接了上游交易(客户在销售平台下单环)和下游仓储配送(如库存管理.物流配送),确保信息流顺畅.操作协同,提升整 ...

  2. MySQL8.0与5.7版本的下载、安装与配置

    •软件下载 下载地址 [官网],点开该网址,点击  DOWNLOAD 来到如下页面: MySQL的版本介绍 MySQL Community Server  社区版本:开源免费,自由下载,但不提供官方技 ...

  3. XAF新手入门 - XAF设计模式探讨

    前言 刚接触XAF的小伙伴可能会有一个疑惑,XAF中有Model(BusinessObject).View.Controller,感觉明显是一个MVC的设计模式,但当你用MVC的设计模式与其对应时,又 ...

  4. pip 查看某个包有哪些版本并升级

    查看某个包有哪些版本 pip install xxx== 升级包 pip install xxx==1.1

  5. Vue3 写业务逻辑不适合用TS(TypeScript)

    TypeScript 最重要的就是装饰器 Vue3最重要更新就是Setup 装饰器就是为了打散功能点,Vue3的Setup功能也是打散功能点,那用Vue3上TS,感觉就是自己给自己多一层工作量. 我这 ...

  6. 基于bes2300 的六轴传感器mpu6050调试总结

    需求  在医疗健康领域,有很多场景需要分析佩戴者的姿势和动作.mpu6050多轴传感器是一个不二的选择.假如想把功耗做的低一些,放在耳机里,bes2300芯片配合mpu6050是一个不错的选择.遗憾的 ...

  7. iBatis查询API

    "一切皆Socket!" 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. --有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信 ...

  8. HiSi 3516CV500 NNIE(Neural Network Inference Engine) 摸鱼记录(1) --- 环境搭建

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  9. grep 第四天

    grep 第四天 1 使用grep 取 passwd 显示行数 grep -c '' /etc/passwd [root@master ~]# grep -c '' /etc/passwd 135 2 ...

  10. NJUPT自控第一次积分赛的小总结(二)基于simpleFOC的无刷电机控制

    新人一枚,写的比较水,欢迎大佬指正! 先说一下我用的物料与开发环境吧: 无刷电机:makerbase的2804电机(带AS5600磁编码器) 电机驱动板:simpleFOCmini(学校推荐的) 电池 ...