集合(Set)

集合是无序的,无序也就没有索引,不能进行索引相关的操作。无序,python解释器就不能通过索引(位置)区分集合中的相同元素,所以集合中不能有相同的元素。

集合用大括号{  }表示。

集合中元素的数据类型可以不同,但集合中不能嵌套列表、元组、集合、字典。

a={1,1,3}print(a) #{1,3} 会自动去掉重复的元素

a={1,"ok"} #数据类型可以不同print(a) #{1, 'ok'}

a={1,"ok",[1,2]} #报错 集合中元素的数据类型可以不同,但集合中不能嵌套列表、元组、集合、字典。

print(a)

集合可以使用in、not  in进行成员判断。

集合之间可以进行集合运算

a={1,2,3}

b={1,2,6}print(a|b) #求并集 {1, 2, 3, 6}

print(a&b) #求交集 {1, 2}

print(a-b) #求差集(a中有,b中没有) {3}

print(a^b) #并集减去交集,即把a、b独有的元素组成一个集合 {3, 6}

|   是python的逻辑或,a或b,即并集

&  是python的逻辑与,a且b,a、b中都要有,即交集

python的逻辑运算符

and、&    与

or、|    或

not   非(python中,逻辑非不能用!表示)

字典(Dictionary)

字典是无序的。

字典中一个键值对就是一个元素。因为是用key来标识元素,所以同一个字典中,key不能相同(不会报错,但后面的值会覆盖前面的值)。

字典中的key、value的数据类型可以不同,但key必须是不可变的数据类型,比如数字、字符串、元组。

字典用大括号{  }表示。

a={"name":"张三","age":18} #key、value之间冒号分隔,键值对之间逗号分隔

a={1:"张三","age":18,"score":(100,90,99)} #字典中的key可以是不同的类型,但key必须是不可变的数据类型。value可以是任何类型。

a={"name":"张三","name":"李四"} #key不能相同,相同时,后面的值会覆盖前面的值

print(a) #{'name': '李四'}

可通过key来操作字典中的元素

a={"name":"张三","age":12,}print(a["name"]) #张三 如果key是数字、元组,以 字典变量名[数字|元组] 的方式操作,key不加引号,加引号表示key是字符串。

a["age"]=10 #如果key已存在,这是修改对应的值

a["score"]={"Chinese":90,"math":100} #如果key不存在,这是往字典中添加一个键值对

print(a) #{'name': '张三', 'age': 10, 'score': {'Chinese': 90, 'math': 100}}

del a["score"] #删除一个键值对

print(a) #{'name': '张三', 'age': 10}

a.clear()#清空字典,会删除所有的键值对,只保留一个空字典

print(a) #{}

del a #删除a这个变量

print(a) #报错

字典通过key来标识、区分元素,不需要索引,所以字典是无序的。

字典的常用函数

函数

描述

dict.keys()

获取所有的key

dict.values()

获取所有的value

dict.items()

获取所有的键值对

dict1.update(dict2)

把dict2中的键值对全部添加到dict1中,dict1会改变,dict2不变。此函数返回值是void。

dict.copy()

复制,返回dict的一个副本。

dict.clear()

清空字典,删除所有键值对,只保留一个空字典

dict.has_key(key)

检测字典中是否有指定的key,返回bool值

dict.get(key,default)

获取key对应的value,若key不存在,返回指定的默认值

dict.setdefault(key[,default])

和get(key,default)一样,只不过key不存在时,会先往字典中添加这个键值对,然后返回值

dict.pop(key[,default])

删除key对应的键值对,并返回这个键值对中的value。若key不存在,返回设置的default的值。

dict.popitem()

删除字典中的最后一个键值对,并返回这个键值对中的value。虽然字典是无序的,但这个函数删除的确实是最后添加的一个键值对。

dict.fromkeys(seq[,value])

创建并返回一个新字典。seq是序列,使用序列中的元素作为key,value可选,为所有键值对设置默认value。

这个函数比较特殊,前面的dict都是字典类的实例,调用的是实例方法。

在python中,dict是一个类,表示字典。fromkeys()是dict类的静态方法,直接通过类名调用。

字典是可变的,如果以上操作修改了字典,字典本身会改变。

copy()使用示例:

dict1={"name":"张三","age":18,"score":(100, 90, 99)}

dict2=dict1.copy()print(dict2) #{'name': '张三', 'age': 18, 'score': (100, 90, 99)}

setdefault()使用示例:

dict={"name":"张三"}print(dict.setdefault("age",18)) #18

print(dict) #{'name': '张三', 'age': 18}

dict.fromkeys(seq[,value])使用示例:

a=[1,2,3] #列表

b=(1,2,3) #元组

c="ok" #字符串

#参数必须是序列

print(dict.fromkeys(a)) #{1: None, 2: None, 3: None}

print(dict.fromkeys(b)) #{1: None, 2: None, 3: None}

print(dict.fromkeys(c)) #{'o': None, 'k': None}

#以序列中的元素作为key,字符串的元素是单个字符。#为设置值时,默认值是None

print(dict.fromkeys(a,"ok")) #{1: 'ok', 2: 'ok', 3: 'ok'}

#设置的值是所有key的值。#设置的值可以是任何类型

小结

1、python中,序列(字符串、列表、元组)是有序的,集合、字典都是无序的。

有序的就有索引,可进行索引相关的操作,可用索引来标识、区分元素,所以元素可重复。

集合中不能有重复的元素,字典中不能有重复的key。

2、数字、字符串、元组是不可变的,对它们操作,返回的往往是副本,本身不会改变。

列表、集合、字典都是可变的,对它们操作,往往就是对本身进行操作。

(python也提供了不可变的集合)

3、列表用[]表示,元组用()表示,列表、元组都有索引、可进行索引相关操作,区别是列表可改变,元组不可改变。

使用内置函数list()、tuple()可实现列表、元组的相互转换。

可以先把列表转换为元组,来保护列表中的元素不被修改,操作完再转换回列表。

可以把元组转换为列表,达到修改元组的目的,操作完再转换回元组。

4、集合、字典都是用{}表示,{}表示空字典,空集合要使用set()来创建。

5、字符串、列表、元组、集合、字典都具有多个元素,它们都可以使用python内置函数 len(x) 来获取x的元素个数。

6、类型转换

函数

描述

int(x [,base])

将x转换为一个[base进制的]整数,base可选,默认为10

float(x)

将x转换为一个浮点数

complex(real [,imag])

创建一个复数,缺省imag时,虚部默认为0

str(x)

将 x 转换为字符串

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为集合

frozenset(s)

转换为不可变集合

chr(x)

将整数(ASCII码值)转换为字符

ord(x)

将字符转换为数值(ASCII码值)

返回的均是副本,不会修改参数本身。

格式:目标类型(需要转换的变量/值)

字符、ASCII码值转换示例:

print(chr(65)) #A

print(ord("A")) #65

7、使用python的内置函数eval(str)可执行字符串中的python语句

eval("print(1)") #输出1

python 字典的值可以为集合吗_Python 集合(Set)、字典(Dictionary)相关推荐

  1. python字典键值可以是元组吗_python元组与字典

    一:元组 元组与列表的最大区别在与元组的第一及元素不可更改,故元组更多的用在安全性要求高与不可更改数据的情况更多. 元组主要有两个方法分别为index()与count(),作用于列表的index()和 ...

  2. python字典键值可以是元组吗_python – 为同一个字典值创建可交换元组键...

    根据评论,您可以将a和b放入frozenset,这是无序的: dict_choice = {frozenset((a, b)): value} 如果你需要这是自动的,你可以创建自己的MutableMa ...

  3. python中字典的value可以为任意对象_Python对象作为字典值

    所以我有以下代码,其中字典的值是一个对象,该对象的关键是对象中的一个项目: class MyObject(): def getName(self): return self.name def getV ...

  4. python集合运算符_Python 集合、字典、运算符

    先区分一下序列类型和散列类型: 序列类型:list.string.tuple,他们中的元素是有序的. 散列类型:set.dict,他们中的元素无序的.(注意:python3.7.0开始字典变成&quo ...

  5. python的集合类型_python集合类型

    集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...

  6. python中集合运算_python集合运算

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 每个韦恩(venn)图中的红色部分是给定集合运算得到的结果.? python 集 ...

  7. python集合类型_python集合类型介绍

    我们在学习数学的时候学过集合这个概念,在Python中同样存在一种名叫集合的数据类型,它也是用来保存不重复的元素,简单的说,集合就是包含了一些唯一存在的元素. 元素有以下几个特性: 1) 无序性,集合 ...

  8. python集合运算_Python 集合set()添加删除、交集、并集、集合操作详解

    在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...

  9. python集合用法_Python 集合(Set)

    集合 集合是无序.无索引的数据集.在Python中,集合用花括号包裹. 示例 创建集合: thisset = {"自行车", "汽车", "高铁&qu ...

最新文章

  1. Ecshop购物流程结算步骤 显示商品缩略图
  2. 前瞻:在 Java 16 中会带来哪些新特性?
  3. 高并发资金交易系统设计方案—百亿双十一、微信红包背后的技术架构
  4. python网络爬虫抓取图片
  5. JavaScript_Util_01
  6. 使你的.bashrc文件立即生效方法
  7. 乌合之众-大众心理研究(六)
  8. Vue-basic 19.单文件组件
  9. Virtualbox源码分析17 APIC虚拟化2.APIC设备模拟
  10. 华为新员工入职180天详细培训计划
  11. CMD命令行下如何切换路径
  12. konga 安装部署
  13. 从左上角到右下角 棋盘问题_分治算法之棋盘问题
  14. tomcat下的javaBean的配置
  15. 手把手搭建经典神经网络系列(1)——AlexNet
  16. PDMS二次开发(一)——PML类型程序类型与概念
  17. 1198:逆波兰表达式
  18. Flask(十二)——消息闪现
  19. 微信美食菜谱小程序系统毕业设计毕设(2)小程序功能
  20. 2016.3.24系统重装记录

热门文章

  1. WebLogic历史漏洞汇总与复现
  2. 基于微信小程序的教室管理系统_北邮信通院大二下程序设计综合实验
  3. 聊聊c#与Python以及IronPython
  4. access里的多步oledb错误_OLEDB 错误
  5. pci-e串口卡linux 驱动下载,pci串口卡万能驱动
  6. 安卓源代码下载相关(AOSP)
  7. eclipse中查看android源代码,Android Eclipse中查看 Android框架源码
  8. 个人喜欢的学习SAP的书
  9. OneNote2016单独安装
  10. mongorepository简单使用