首页 > 其他分享 >集合与字典

集合与字典

时间:2022-09-29 23:13:21浏览次数:50  
标签:dict1 name gender s1 print 集合 20 字典

一、创建集合

  • 创建集合使用{}或set(),但是如果要创建空集合只能使用set(),因为{}用来创建空字典。
s1 = {10,20,30,40,50}
print(s1)
# 集合里面的内容是随机打印出来的,也就是无序的。
s2 = {10,30,20,10,30,40,50}
print(s2)

s3 = set('abcdefg')
print(s3)

s4 = set()
print(type(s4))

s5 = {}
print(type(s5))

-----------------------------------------------
{50, 20, 40, 10, 30}
{50, 20, 40, 10, 30}
{'f', 'a', 'd', 'b', 'g', 'c', 'e'}
<class 'set'>
<class 'dict'>
  • 集合可以去掉重复数据:
  • 集合数据是无序的,故不支持下标

二、集合常见操作方法

(一)增加数据

1、add()

s1 = {10,20,30,40,50}
s1.add(100)
s1.add(10)
print(s1)

----------------------------
{50, 20, 100, 40, 10, 30}
  • 因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作

2、update()

  • 追加的数据是序列
s1 ={10,20}
# s1.update(100)
s1.update([100,200])
s1.update('abc')
print(s1)

-------------------------
{'c', 100, 200, 10, 'a', 20, 'b'}

(二)删除数据

1、remove()

  • 删除集合中的指定数据,如果数据不存在则报错。
s1 = {10,20}
s1.remove(10)
print(s1)

s1.remove(10)  # 删除过后,如果再次删除,就会出现报错
print(s1)

--------------------------------------
{20}
Traceback (most recent call last):
  File "E:\python_basics\第十节课-集合与字典\集合.py", line 38, in <module>
    s1.remove(10)
KeyError: 10

2、discard()

  • 删除集合中指定数据,如果数据不存在也不会报错。
s1 = {10,20}
s1.discard(10)
print(s1)

s1.discard(10)
print(s1)

-----------------------------
{20}
{20}

3、pop()

  • 随机删除集合中的某个数据,并返回这个数据。
s1 = {10,20,30,40,50}
a = s1.pop()
print(a)
print(s1)

--------------------
50
{20, 40, 10, 30}

(三)查找数据

  • in:判断数据在集合序列
  • not in:判断数据不在集合序列
set1 = {1,2,3,4,5,6}
if 25 not in set1:
    print("25不在集合里面")

else:
    print("25在集合里面")

-----------------------------
25不在集合里面

三、创建字典

  • 符号为大括号
  • 数据为键值对形式出现
  • 各个键值对之间用逗号隔开
# 有数据字典
dict1 = {'name':'张三','age':20,'gender':'男'}
# 空字典
dict2 = []
dict3 = dict()
  • 注意:一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v

四、字典常见操作

(一)增加数据

  • 写法:字典序列[key]=值
  • 注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键对。
dict1 = {'name':'张三','age':20,'gender':'男'}
dict1['name'] = '李四'
print(dict1)

dict1['id'] = 110
print(dict1)

----------------------------
{'name': '李四', 'age': 20, 'gender': '男'}
{'name': '李四', 'age': 20, 'gender': '男', 'id': 110}
  • 注意字典为可变类型

(二)删除数据

  • del()/del
  • 删除字典或删除字典中指定键值对
dict1 = {'name':'张三','age':20,'gender':'男'}
del dict1['gender']
print(dict1)
---------------------------------
 #{'name': '张三', 'age': 20}

del(dict1)
print(dict1)
  • clear()
  • 清空字典
dict1 = {'name':'张三','age':20,'gender':'男'}
dict1.clear()
print(dict1)

---------------------
{}

(三)修改数据

  • 写法:字典序列[key] = 值
  • 注意:如果key存在则修改这个key对应的值;如果key不存在新增此键值对。
dict1 = {'name':'张三','age':20,'gender':'男'}
dict1['name'] = '李四'
print(dict1)

------------------
{'name': '李四', 'age': 20, 'gender': '男'}

(四)查找数据

  • key根据键查找值
dict1 = {'name':'张三','age':20,'gender':'男'}
print(dict1['name'])
print(dict1['id'])     # 报错

-------------------------
张三
  • get()
dict1 = {'name':'张三','age':20,'gender':'男'}
print(dict1.get('name'))
print(dict1.get('id',110))
print(dict1.get('id'))

--------------------------------
张三
110
None
  • keys()
  • 查找所有的键
dict1 = {'name':'张三','age':20,'gender':'男'}
print(dict1.keys())

----------------------
dict_keys(['name', 'age', 'gender'])
  • values()
  • 查找所有的值
t1 = {'name':'张三','age':20,'gender':'男'}
print(dict1.values())

-----------------
dict_values(['张三', 20, '男'])
  • items()
dict1 = {'name':'张三','age':20,'gender':'男'}
print(dict1.items())

----------------------------
dict_items([('name', '张三'), ('age', 20), ('gender', '男')])

五、字典的循环遍历

(一)遍历字典的key

dict1 = {'name':'张三','age':20,'gender':'男'}
for key in dict1.keys():
    print(key)
    
---------------------------------
name
age
gender

(二)遍历字典的value

dict1 = {'name':'张三','age':20,'gender':'男'}
for value in dict1.values():
    print(value)

----------------------
张三
20
男
  • 若想直接得到里面的值,示例如下。

dict1 = {'name':'张三','age':20,'gender':'男'}
for data in dict1.values():
    print(data)

-----------------
张三
20
男

(三)遍历字典的元素

dict1 = {'name':'张三','age':20,'gender':'男'}
for value in dict1.items():
    print(value)

-----------------------
('name', '张三')
('age', 20)
('gender', '男')

 

标签:dict1,name,gender,s1,print,集合,20,字典
From: https://www.cnblogs.com/LoLong/p/16743439.html

相关文章

  • MongoDB(1):数据库和集合基本操作
    MongoDB是一款非关系型数据库。传统的关系型数据库受到各种关系的累赘,各种数据形式的束缚难以处理海量数据以及超高并发的业务场景。而MongoDB又是一个非关系数据库中功能......
  • 双列集合&Map
    概念左边的一列称为键,右边的一列称为值键唯一,值不唯一,键值一一对应一对键值称为键值对或键值对对象,又称Entry对象体系MapMap是双列集合的顶层接口,它的功能是全......
  • 集合详解——Robyn编程学习(Java)
    集合的框架体系本节课学习的目标:彻底搞明白集合的通用框架体系,以不变应万变。能够分清楚一个集合类型的应用与区别。首先明白collection和map的区别,collection接口时单......
  • 十一(一)、集合之Collection
    一、CollectionCollection接口:单列数据,定义了存取-组对象的方法集合;1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器; 说明:此时的存储,主要指的是内存层面的存储......
  • 十一(二)、集合之Map
    一、Map的实现类的结构--value对的数据-----类似于高中的函数y=f(x)使用Set存储所有的key,key所在的类要重写equals()和hashCode()的方法;(以HashMap为例说的)HashMap:作为M......
  • Golang Redis有序集合(sorted set)
    Redis有序集合(sortedset)和集合一样也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double类型的分数,这个分数主要用于集合元素排序。引用git......
  • [答疑]想表示消息返回值为Customer集合
    道奈特(240***10)14:34:55EA中序列图。我想表示消息返回值为Customer集合。目前只有一个Customer实体类,我需要另外新建一个CustomerList类吗?潘加宇(3504847)17:01:26不......
  • WPF 已知问题 资源字典树引用与资源寻找的坑
    大家都知道,在WPF里面,可以让资源字典合并其他资源字典,从而定义出资源字典引用树。然而在资源字典引用树里面,如果没有理清关系,将可以作出一个超级复杂的引用关系网。如果在......
  • Python3 字典 items() 方法
    描述:Python字典items()方法以列表返回视图对象,是一个可遍历的key/value对。dict.keys()、dict.values()和dict.items()返回的都是视图对象(viewobjects),提供了字典实......
  • 字典树
    开新坑了,好像是第3个了#include<cstdio>#include<string.h>constintN=2e6+5;constintM=131;constintINF=0x3f3f3f3f;usingnamespacestd;intT,n,m,A......