美文网首页
07-字典与集合的操作

07-字典与集合的操作

作者: 蛋挞先生L | 来源:发表于2018-11-05 20:35 被阅读0次

字典

创建多个元素的字典

方式1:*****
    变量 = {键:值,键:值....}
    dict1 = {"a":1,"b":2,"c":3}

方式2:
    变量 = dict({键:值,键:值....})
    dict2 = dict({"a":1,"b":2,"c":3})

方式3:
    变量 = dict(键=值,键=值...)
    注意:该方式键作为形参名使用,不可以添加引号,必须符合变量规则
    dict3 = dict(a=1,b=2,c=3)

方式4:
    变量 = dict([(键,值),(键,值)...])
    变量 = dict([[键,值],[键,值]...])
    变量 = dict(((键,值),(键,值)...))

方式5:****
    变量 = dict(zip((键,键...),(值,值...)))
    
    list1 = ["a","b","c"]
    list2 = [1,2,3]
    dict4 = dict(zip(list1,list2))
    
    list1 = ["a","b","c","d","e","f"]
    list2 = [1,2,3]
    dict4 = dict(zip(list1,range(1,10)))

字典的遍历

遍历键

for 变量i in 字典:
    #使用i遍历所有的键,有键就可以通过变量访问其值
# for key in dict1:
#     print(key)

遍历键和值

for 变量i,变量j in 字典.items():
    #使用变量i遍历所有键,通过变量j遍历所有值
# for key,value in dict1.items():
#     print(key,value)

字典的内置函数

clear() 清空字典

功能:清空字典
格式:字典.clear()
返回值:None
注意:直接改变原有字典
# dict1.clear()
# print(dict1)

**copy() ** 复制字典

功能:复制字典
格式:字典.copy()
返回值:新的字典
# dict2 = dict1.copy()
# print(dict2)

fromkeys() 使用指定的序列作为键创建字典

功能:使用指定的序列作为键创建字典
格式:字典.fromkeys(序列,值)
返回值:不包含原字典内容的新字典
注意:后面的值是作为整体传入字典
# lsd = ["d","e","f"]
# lsd1 = [1,2,3]
# dict2 = dict1.fromkeys(lsd,lsd1)
# print(dict2)

get() **** 根据键获取指定的值

功能:根据键获取指定的值
格式:字典.get(键[,默认值])
返回值:值
注意:如果键不存在,则使用默认值,如果没有默认值则返回None
# print(dict1["e"])
# print(dict1.get("e"))

items() **** 将字典的键值转化成类似元组的形式,方便遍历

功能:将字典的键值转化成类似元组的形式,方便遍历
格式:字典.items()
返回值:类似元组的类型

keys() **** 将字典的所有键组成一个序列

功能:将字典的所有键组成一个序列
格式:字典.keys()
返回值:序列
print(dict1.keys())

values() **** 将字典的所有值组成一个序列

功能:将字典的所有值组成一个序列
格式:字典.values()
返回值:序列
print(dict1.values())

pop() *** 移除字典中指定的元素

功能:移除字典中指定的元素
格式:字典.pop(键[,默认值])
返回值:被移除的键对应的值
注意:如果键不存在,则报错;如果键不存在,默认值设置,则返回默认值
# dict2 = dict1.pop("a")
# print(dict2)

popitem() 移除字典中最后一对键值对,没有参数

功能:移除字典中最后一对键值对,没有参数
格式:字典.popitem()
返回值:键值对组成的元组
注意:弹一个原字典就少一个,字典为空就不可以弹出,会报错
# dict1.popitem()
# dict1.popitem()
# dict1.popitem()
# dict1.popitem()
# print(dict1)

setdefault() 添加一个元素

功能:添加一个元素
格式:字典.setdefault(键,值)
返回值:None
注意:添加是键存在,则不进行任何操作;键不存在则添加,添加时不写值,默认None值
# dict1.setdefault("d",4)
# print(dict1)
#
# dict1["e"] = 5
# print(dict1)

update() ***

功能:修改字典中的值;如果添加的key在原始字典中没有  那么就添加新的键值对;如果有,那么就更新原字典的键所对应的值

方式1:
    格式: 字典.update(键=值)
    返回值:None
    注意:此处的键作为关键字参数使用,不可以添加''

方式2:
    格式: 字典.update({键:值})
    返回值:None
# dict1.update(d=5)
# print(dict1)
#
# dict1.update({"e":6})
# print(dict1)

# 如果添加的key在原始字典中没有  那么就添加新的键值对   如果有  那么就更新原字典的键所对应的值
# dict2 = {"f":7,"g":8,"a":0}
# dict1.update(dict2)
# print(dict1)

集合

确定的无序的一组数据就是集合。

  • 集合中的值不会重复(唯一)
  • 集合中的元素没有任何顺序
  • 集合中可以使用整数,浮点数,布尔值,复数,字符串,元组,冰冻集合

集合的内置函数

add() 向集合中添加一个元素

格式:集合.add(值)
返回值:None
注意:直接改变原有集合
# s.add(7)
# print(s)

pop() 随机删除集合中的一个元素

格式:集合.pop()
返回值:删除的那个元素
注意:直接改变原有集合
# s.pop()
# print(s)

remove() 删除集合中的某个元素

格式:集合.remove(值)
返回值:None
注意:如果集合中不存在这个元素,会报错;直接改变原有集合
# s.remove(7)
# print(s)

discard() 删除集合中的某个元素

格式:集合.dicard(值)
返回值:None
注意:如果集合中不存在该元素,不会报错;直接改变原有集合

remove移除非成员值会报错,discard移除非成员值,啥也不错!

# s.discard(9)
# print(s)

clear() 清空集合

格式:集合.clear()
返回值:None
注意:直接改变原有集合
# s.clear()
# print(s)

copy() 复制集合

格式:集合.copy()
返回值:复制的一份集合
# s2 = s.copy()
# print(s2)

difference() 求差集

格式:集合1.difference(集合2)
返回值:集合
操作:获取存在于集合1但是不存在与集合2中的数据的集合
# result = x.difference(y)
# result1 = y.difference(x)
# print(result)
# print(result1)

difference_update() 差集更新

格式:集合1.difference(集合2)
返回值:无 直接将结果赋值给集合1
操作:获取存在于集合1但是不存在与集合2中的数据的集合
# x.difference_update(y)
# print(x)

**intersection() ** 交集

格式:集合1.intersection(集合2)
返回值:集合
操作:获取即存在于集合1又存在于集合2中的数据组成的集合
# result = x.intersection(y)
# print(result)

intersection_update() 交集更新

格式:集合1.intersection_update(集合2)
返回值:None  直接将结果赋值给集合1
操作:获取即存在于集合1又存在于集合2中的数据组成的集合

union() 并集

格式:集合1.union(集合2)
返回值:集合
操作:将集合1和集合2中所有数据新建一个集合(去重)
# result = x.union(y)
# print(result)

update() 并集更新

格式:集合1.update(集合2)
返回值:无   直接将结果赋值给集合1
操作:将集合1和集合2中所有数据新建一个集合(去重)

**issuperset() ** 检测一个集合是不是另外一个集合的超集(父集)

格式:集合1.issuperset(集合2)
返回值:布尔值
# result = y.issuperset(z)
# print(result)

**issubset() ** 检测一个集合是不是另外一个集合的子集

格式:集合1.issubset(集合2)
返回值:布尔值
# result = z.issubset(y)
# print(result)

isdisjoint() 检测2个集合是否不相交

格式:集合1.isdisjoint(集合)
返回值:布尔值

symmetric_difference() 对称差集操作

格式:集合1.symmetric_difference(集合2)
返回值:集合
操作:将集合1和集合2不相交的部分取出组成的新的集合
# result = x.symmetric_difference(y)
# result1 = y.symmetric_difference(x)
# print(result)
# print(result1)

**symmetric_difference_update() ** 对称差集更新操作

格式:集合1.symmetric_difference(集合2)
返回值:None 直接将结果赋值给集合1
操作:将集合1和集合2不相交的部分取出组成的新的集合

冰冻集合

创建空的冰冻集合

变量 = frozenset()

创建多个元素的集合

变量 = frozenset(容器类数据)
s = frozenset()
print(type(s))

s1 = frozenset([1,2,3,6,54])
print(s1)

文件操作

open()语法

功能:打开或者创建一个文件,如果已有该文件则打开,如果没有则创建
格式:open('文件路径','打开模式')
返回值:文件io对象

语法 file_object = open(path,mode)

  • path:文件的路径和名称 ,格式为字符串

  • mode:文件打开的权限 ,格式为字符串

  • w 写权限

    • 如果没有这个文件 ,自动创建一个;如果有这个文件,那么将会覆盖掉之前的内容。
    f =
    open("user.txt","w",encoding="utf-8")
    #write()  向对应的文件中写入文件
    f.write("有纹身的都怕热,镶金牙的爱咧嘴")
    #close()  关闭文件
    f.close()
    
  • a 追加写权限

    • 如果没有这个文件,自动创建一个;如果有这个文件,那么就在文件末尾进行追加
    f = open("user.txt","a",encoding="utf-8")
    f.write("金星说:“人不犯我,我不犯人,人若犯我,礼让三分,人若再犯,斩草除根")
    f.flush()
    while True:
        pass
    
    • 写操作是将要写入的内容先写到缓冲区,把内容写入文件有以下几种方式

      • 当程序运行结束 自动写入
      • 当文件关闭 自动写入
      • 当缓冲区被写满 自动写入
      • flush()刷新缓冲区 立即写入
  • r 读操作

    • read() 读取全文
    • readline() 读一行
    • readlines() 以行为单位读取全文
    f = open("user.txt","r",encoding="utf-8")
    # read() 读取全文
    # content = f.read()
    # print(content)
      
    # readline()  读一行
    contents = f.readline()
    print(contents)
    
    # readlines() 以行为单位读取全文
    result = f.readlines()
    print(result)
    f.close()
    
  • wb 二进制写入

    f = open("user.txt","wb")
    str1 = "大金链子小手表"
    # encode() 对数据进行指定格式的编码
    # f.write("大金链子小手表".encode("utf-8"))
    f.write(str1.encode("utf-8"))
    f.close()
    
  • rb二进制读取

    f = open("user.txt","rb")
    # decode() 对数据进行指定格式的解码
    content = f.read().decode("utf-8")
    print(content)
    
  • seek() 刷新指针(光标)位置

    • 两个参数:第一个为移动的字节,第二个为起始位置
    • python2版本第二个参数有三个值,0-开头位置;1-当前位置;2-结尾位置
    • python3版本中第二个参数只有一个值,就是0
  • w+、a+、r+都是读写权限*

with open()语法

  • 格式:with open(文件路径,权限) as 变量:
  • 此处 变量 是一个局部变量,无法在代码块外使用
  • 不用手动关闭文件,代码块运行完毕后自动关闭文件
with open("user.txt","a+") as f:
    #此处的文件对象f 是一个局部变量
    # tell() 告诉我们当前光标在什么位置
    content = f.read()
    print(f.tell())
    f.seek(10,0)
    print(f.tell())
    result = f.readline()
    #seek(offset,whence)  whence代表参考位置  offset代表字节数
        # whence = 0    以开头为参考位置
        # whence = 1    以当前为参考位置  (3.x取消了此项功能)
        # whence = 2    以结尾为参考位置  (3.x取消了此项功能)
    print(result)

相关文章

  • 07-字典与集合的操作

    字典 创建多个元素的字典 字典的遍历 遍历键 遍历键和值 字典的内置函数 clear() 清空字典 **copy...

  • 《算法与数据结构 C语言描述》第六章 集合与字典

    集合与字典是两种常用的数据结构,应用非常广泛字典是关联的集合。集合主要考虑集合之间的并、交和差操作,字典主要关心其...

  • python复合数据类型以及英文词频统计

    1.列表,元组,字典,集合分别如何增删改查及遍历。 列表操作如下所示: 集合操作如下所示: 字典操作如下所示: 2...

  • 2. 字典和集合

    字典和集合相比于列表和元组,字典和集合的性能更优:主要体现在查找、增加和删除操作; 1. 字典和集合基础 字典是一...

  • 05 | dict 和 set 基本操作、字典视图等

    一、字典 1.1 字典的创建 1.2 基本操作 创建字典 遍历字典的每一项 获取所有键的集合 获取所有值的集合 判...

  • 6.Python之字典的基础

    字典是针对非系列集合而提供的一种数据类型 字典的概念 简单的字典的实例 字典类型与系列类型的区别 字典的操作 为字...

  • Python3 小技巧

    集合操作 字典操作 两个字典 相交、合并、相差 Python 映射 Python 内置函数 map();map()...

  • 字典,集合,有序字典

    字典 新建字典 1、 2、 常用操作 索引 新增 删除 键、值、键值对 循环 长度 集合 有序字典 。。。

  • Python核心速记02

    字典与集合 相比于列表和元组,字典的性能更优,特别是对于查找、添加和删除操作,字典都能在常数时间复杂度内完成。 集...

  • swift第三周学习总结

    1. 集合(Set) (1)集合的定义: (2)集合写法: 举例: (4)对集合的操作: 2. 字典(Dictio...

网友评论

      本文标题:07-字典与集合的操作

      本文链接:https://www.haomeiwen.com/subject/cadexqtx.html