python学习笔记——集合与字典

  • 1. 集合的基本概念
    • 1.1 set(x)函数
    • 1.2 集合类型的10个操作函数
  • 2. 字典的基本概念
    • 2.1 字典的索引
    • 2.2 字典的操作
    • 2.3 字典小结

1. 集合的基本概念

集合类型和数学集合中的概念一致,即包含0个或多个数据项的无序组合。集合元素不可重复,集合类型只能是固定的数据类型。

python编译器中界定固定数据类型与否主要考察类型能否进行哈希运算。python中提供了一种同名的具体数据类型——集合(set)

由于集合是无序组合,他没有索引和位置的概念,不能分片,集合中元素可以动态增加或删除。
集合用大括号表示,可以用赋值语句生成一个集合,例如:

>>> s = {1,'dream',2,2,(3,4)}
>>> s
{1, 2, (3, 4), 'dream'}

通过集合元素的独一无二性,可以过滤掉重复元素,这也是集合的很大一个用处。

1.1 set(x)函数

set(x)函数可以用于生成集合,输入的参数可以是任何组合数据类型,返回结果是一个无重复且排序任意的集合。

1.2 集合类型的10个操作函数

操作函数及方法 描述
s.add(x) 如果数据项x不在集合中,则增加x到s中
s.clear() 移除s中所有的数据项
s.copy() 返回集合s的一个副本
s.pop() 随机返回s中的一个元素,如果集合为空,返回KeyError异常
s.discard(x) 如果x在集合中移除该元素,不在不报错
s.remove(x) 如果x在集合中移除该元素,不在返回KeyError异常
s.isdisjoint(T) 如果s和T没有相同的元素,返回True
len(s) 返回s中元素的个数
x (not) in s x(不是)是s的元素,返回相应的判断

2. 字典的基本概念

通过任意键信息查找一组数据中 值的信息的过程叫映射,python语言中通过字典实现映射。python语言中的字典可以用大括号建立,建立模式如下:

{<键1>:<值1>,<键2>:<值2>,...,<键n>:<值n>}

由于大括号表示集合,因此字典类型和集合有着类似的性质,即键值对之间没有顺序且不能重复。

2.1 字典的索引

字典中键值对的访问模式如下,采用中括号格式:
<值> = <字典变量>[<键>]
例如:
>>> D = {'China':'BeiJing','France':'Paris','USA':'Washington DC'}
>>> D['China']
'BeiJing'

字典中对某个键值的修改可以通过中括号的访问和赋值实现,例如:

>>> D['USA']='NK'
>>> print(D)
{'China': 'BeiJing', 'France': 'Paris', 'USA': 'NK'}

总结起来,字典是储存可变数量键值的数据结构,键和值可以是任意数据类型,包括程序自定义的类型。python字典的效率非常高,可以储存几十万项的内容。

2.2 字典的操作

可以直接使用大括号创建一个空的字典,并通过中括号向其中增加元素。

>>> d = {}
>>> d['2^2']=4
>>> print(d)
{'2^2': 4}

注:直接使用大括号生成的是字典,生成空集合需要使用函数set()

函数和方法 描述
d.keys() 返回所有的键的信息
d.values() 返回所有值的信息
d.items() 返回所有的键值对
d.get(key,default) 键存在返回相应值,否则返回默认值
d.pop(key,default) 键存在返回相应值,同时删除键值对,否则返回默认值
d.popitem() 随机从字典中取出一个键值对,以元组(key,value)形式返回
d.clear() 删除所有的键值对
del d[key] 删除字典中某个特定的键值对
key in d 如果键在字典中返回True,不存在返回False

与其他组合类型一样,字典可以通过for-in语句对其元素进行遍历,语法结构如下:

for <变量名> in <字典名>:<语句块>

由于键值对中的键相当于索引,因此,for循环返回变量名是字典的索引值。如果需要获得键对应的值,可以在语句块中通过get()方法获得。

>>> D = {'China':'BeiJing','France':'Paris','USA':'Washington DC'}
>>> for key in D:print(key)China
France
USA

2.3 字典小结

字典是实现键值对映射的数据结构,它采用固定数据类型的键数据作为索引,十分灵活,具有处理任意长度、混合类型键值对的能力。为了更好地认识和使用字典,请理解如下一些基本原则。
(1)字典是一个键值对的集合,该集合以键为索引,一个键信息只对应一个值信息。
(2)字典中元素以键信息为索引访问。
(3)字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对。

python学习笔记——集合与字典相关推荐

  1. Python学习笔记D8(字典与集合)

    Python学习笔记D8(字典与集合) 「字典」定义语法为 {元素1, 元素2, -, 元素n} 其中每一个元素是一个「键值对」- 键:值 (key:value)关键点是「大括号 {}」,「逗号 ,」 ...

  2. Python学习笔记 | 列表和字典

    基于Python3版本的学习. 列表 用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作"元素". 每个元素之间都要用英文逗号隔开. list1=['小明',18,1.70 ...

  3. python学习笔记之三:字典,当索引不好用时

    字典是python中唯一内建的映射类型.字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里. 键可以是数字,字符串甚至是元组. 1. 创建和使用字典 字典可以通过下面的方式创建: pho ...

  4. python 学习笔记 - for循环: 字典遍历, 分别打印key, value, key:value

    #遍历字典, 分别打印key, value, key:value emp = {'name':'Tom', 'age':20, 'salary' : 8800.00}for k in emp.keys ...

  5. Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)

    Python学习笔记:列表.字典与集合解析(List, Dict and Set Comprehensions) 1.列表解析 最受喜爱的Python语言特性.过滤一个集合的元素生成一个新的列表. 一 ...

  6. Python学习笔记:集合(set)

    Python学习笔记:集合(set) 1.集合概念 集合是互异元素的无序集合.类似于只有键没有值的字典. 2.创建集合 有两种方法创建集合:一个是利用set函数,一个是利用花括号创建集合字面量. 3. ...

  7. Python学习笔记:字典(dict)

    Python学习笔记:字典(dict) 字典(dict)可能是最重要的Python内置数据结构,更常用的名称是哈希映射(hash map)或关联数组(associate array).它是键值对的集合 ...

  8. python学习笔记(六)字典

    python学习笔记(六)字典 1.字典初见 python中的字典实际上就是一系列的"键-值"对(key-value),它们之间时无序的,每一个键都必须有与之对应的值,这个值可以是 ...

  9. 廖Python学习笔记一

    1. 廖Python学习笔记 大的分类 如函数 用二级标题,下面的用三级 如输入输出 1.1.1. 输入输出 1.1.1.1. 输出 用 print() 在括号里加上字符串,就可以向屏幕上输出指定的文 ...

最新文章

  1. clob存base64文件存不进去_Kafka 和 RocketMQ 底层存储之那些你不知道的事
  2. ASP.NET Core 异常重试组件 Polly
  3. idea springBoot 配置devtools实现热部署
  4. express下使用ES6 - dtdxrk - 博客园
  5. python局部静态变量_全局变量、局部变量和静态变量
  6. matlab进行多光栅衍射仿真,光栅衍射MATLAB仿真.docx
  7. proteus 中89c51芯片如何显示vcc和gnd
  8. Oracle之同义词
  9. python 语言基本知识2:数据结构
  10. 最新自己怎么建网站零基础教程-李廷学
  11. 【转】解决win10系统每次重启桌面图标排列混乱的问题!亲测有效!!
  12. struts1 标签
  13. 关于Windows的window
  14. 商店管理系统的设计与实现
  15. 【arcpy批量制图】符号系统的色带、小数点设置
  16. 沪江计算机考研老师,[回报沪江]从六级370到考研74,我的08研英之路[原创].doc
  17. 一个简单的步骤让你的 Python 代码更干净
  18. ubuntu安装nvidia显卡驱动(双显卡)
  19. 【Python网络爬虫】前程无忧网爬虫+可视化
  20. 嵌入式新手学习路线,嵌入式课程学习

热门文章

  1. 译: Linux 操作系统知多少
  2. 鲜为人知的训练神经网络技巧
  3. 【DQN】解析 DeepMind 深度强化学习 (Deep Reinforcement Learning) 技术
  4. 阿里云——手把手教你搭建个人网站(上云良心品,细致到想哭)
  5. 支付宝沙箱支付 Java
  6. 程序员进阶!读完我这份《Android开发核心源码精编解析》面试至少多要3K!已拿到offer
  7. c++学习之根据任意三个坐标的判断三角形的类型(面积、周长)
  8. 300万数据的导入导出
  9. 2010年10大网络流行语及其他流行语
  10. xctf 100levels