重走py 之路 ——字典和集合(二)
前言
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 之路 ——字典和集合(二)的更多相关文章
- 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符
[重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...
- 【重走Android之路】【路线篇(二)】知识点归纳
[重走Android之路][路线篇(二)]知识点归纳 参考:http://blog.csdn.net/xujing81/article/details/7313507 第一阶段:Java面向对 ...
- 【重走Android之路】【番外篇】关于==和equals
[重走Android之路][番外篇]关于==和equals 在实际的编程当中,经常会使用==和equals来判断变量是否相同.但是这两种比较方式也常常让人搞得云里雾里摸不着头脑.下面是我个人做的总 ...
- 【重走Android之路】【番外篇】有关于null的一些知识点
[重走Android之路][番外篇]有关于null的一些知识点 1.首先,到底什么是null? null是Java中的一个关键字,用于表示一个空对象引用,但其本身并不是任何类型也不是属于任何对象. ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder
[重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final ...
- 【重走Android之路】【开篇】序
[重走Android之路][开篇] [序] 本人Nodin,偶尔也叫MoNodin,朋友们都喜欢叫我丁,还有个笔名叫陌上幽人,文艺时叫恋风,发奋时叫不肯腐烂的土壤...也许你觉得我 ...
- 【重走Android之路】【路线篇(一)】路线图
总结归纳了J2SE和Android的知识点,自己制订了一套详细的路线图,其中肯定有考虑不全和不合适的地方,欢迎各位大牛批评指正. 详细路线图如下:
- py基础2--列表,元祖,字典,集合,文件
本节内容 列表.元祖操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 三元运算&生成式&成员运算&解压法&队列堆栈&数据类型转换 1. 列表操作 ...
- Python之路【第二篇】: 列表、元组、字符串、字典、集合
本文内容: -------------------------------------- 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表(list) 序列是Pyt ...
随机推荐
- Java 封装性的小练习
1 package com.bytezero.test2; 2 3 public class Person 4 { 5 private int age; 6 7 public void setAge( ...
- Tomcat 系列
Tomcat 系列 目录 Tomcat 系列 一. 基本概念 1.1 java jdk 概念 1.2 jsp.servlet是什么 1.3 web服务器.web容器.应用程序服务器 1.4 tomca ...
- netcore 图片缩略图
/// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名< ...
- 感慨 vscode 支持win7最后一个版本 1.70.3 于2022年7月发布
为什么 家里电脑一直是win7,也懒的升级,nodejs也不能用最新的,没想到vscode也停产了 https://code.visualstudio.com/updates/v1_70 后记 别用u ...
- Kotlin学习快速入门(9)—— 密封类的使用
原文地址: Kotlin学习快速入门(9)-- 密封类的使用 - Stars-One的杂货小窝 代码逻辑中,很多时候我们会需要分支语句,来根据数据的情况走不同的处理逻辑,而密封类就是在这种情况下,方便 ...
- TornadoFx中的css美化
原文地址:TornadoFx中的css美化 - Stars-One的杂货小窝 TornadoFx中使用类重新对css进行了封装,所以可以用代码的形式来书写样式 说明 除了Text,其他的若是要修改文字 ...
- Electron 开发过程中主进程的无法看到 console.log 输出怎么办
开发过程中命令行工具(powershell.terminal)内无法看到 console.log 输出 Eelectron 的在开发过程中主进程 NodeJS 内往往需要 console.log 来进 ...
- 快速将json装DTO的GsonFormatPlus插件使用
参考:https://www.jianshu.com/p/8fb0e4274436 https://blog.csdn.net/qq_43039260/article/details/12676582 ...
- C++ bind函数
bind()是一个函数适配器,返回一个可调用对象,他可以将一个函数的参数列表做魔改. 设置默认参数 using namespace std::placeholders; void f(int a, i ...
- STL:vector中如何使用at()来避免程序报错
#include <iostream> #include <vector> using namespace std; int main() { vector<int> ...