(五)字典,集合

一. 字典

1.什么是字典

字典是以key:value的形式来保存数据

用{}表示. 存储的是key:value

2. 字典的增删改查(重点)

1). 添加

a) dic[新key] = 值

b)setdefault(),此方法可以输入一个参数,也可以输入两个参数。

一个参数时,作为key使用,这时,如果字典中没有这个key,那么就把这个key添加到字典中,值为None。两个参数时,第一个作为key,第二个作为value,如果字典中没有这个key,那么key与value就会被保存在字典中。不管是一个参数还是两个参数,如果字典中有了相应的key,那么就不会再更新新输入的key与value。

2). 删除

pop(key)类似于列表list[索引]

popitem( ),Python3.6中,删除的是最后一项

del  dict[key]这是命令式删除

clear( ) 清空字典

3). 修改

a)dic[老key] = 值

b)oldDict.update(newDict) 更新字典

这个方法,会把newDict中的数据更新到oldDict上,一样的key对应的value使用newDict的,oldDict中没有的值,也会添加进入。其实就是把newDict直接复制到oldDict中。

dic = {1: "a", 2: "b", 6: ‘d‘}
dic1 = {1: "g", 2: "e", 6: ‘d‘,3:9}
dic.update(dic1)

  打印后:

{1: ‘g‘, 2: ‘e‘, 6: ‘d‘, 3: 9}
{1: ‘g‘, 2: ‘e‘, 6: ‘d‘, 3: 9}

  

4). 查询

a)dic[key],查看单一的一个元素。

b)get(key, value),如果只是输入一个参数,作为key使用,如果字典中有对应的key,就返回此key对应的value。如果字典中没有此key,则返回None。输入两个参数时,第一个作为key,第二个作为value。如果字典中有此key,则返回对应的值,如果没有此key,则返回,自己输入的第二个参数,即为value。

c)setdefault(key, value),这个方法输入一个key就可以获取到对应的value,也算是一个查询的工具

5). 遍历,字典是一个可迭代对象

a)for item in dict:

(操作语句)

item在这里就是key,可以直接使用

b)for k,v in dict.items():

上面的k,v就是对应的key,value,直接可以使用

这种方式叫解构,也叫解包。类似于 a,b = 1,2 这样1和2会分别赋值给a和b。也可以如下操作:a,b = (1,2)。

3. 字典的相关操作

1. keys() 获取到所有的键

打印:dict_keys([1, 2, 3]),这个值类似于列表,所以在使用for循环遍历时,可以按照列表的方式来展示

  1. values() 获取到所有的值

打印:dict_values([‘a‘, ‘b‘, ‘d‘]),这个值类似于列表,所以在使用for循环遍历时,可以按照列表的方式来展示

  1. items() 拿到所有的键值对

使用方式在2中的遍历已使用。

4. 字典的嵌套

字典里可以存放各种数据,如下:

av_catalog = {
    "欧美": {
        "www.youporn.com": ["abc", "def"],
        "www.pornhub.com": ["123大", "345"],
        "letmedothistoyou.com": ["wer", "try"]    },
    "日韩": {
        "th": ["rrr", "verygood"]
    },
    "大陆": {
        "de": ["wer", "bgbg"]
1:True
    }
}

二、集合

集合中存储的都是不可变的值,就相当于存储的字典的key。

1. 集合最主要的作用就是去重复

 lst = ["麻将", "牌九", "骰子", "扑克", "老虎", "骰子", "扑克", "老虎", "扑克", "老虎", "扑克", "老虎"]

 去掉上面列表中的重复数据,可以如下面的代码:

li = []
for v in lst:
    if v not in li:
        li.append(v)
print(li)

 使用set集合,可以如下代码:

s = set(lst)
lst = list(s)
print(lst)

 两种方式,一目了然,可以看到,使用set集合会更方便简单一些。

2.增

set.add(不可变的值),列表,字典不可以被添加。

3.改

set.update( ),这个方法类似于列表的extend( )方法,会把输入的元素,按顺序再添加到set中。

s = {"a",2}
s.update("def")
print(s)

 打印后:

{2, ‘f‘, ‘e‘, ‘a‘, ‘d‘}

  

s = {"a",2}
s.update({"def",34})
print(s)

 打印后:

{2, ‘a‘, 34, ‘def‘}

 由以上两个输出还可以看出一个问题,就是,集合中的数据没有顺序,其实是hash处理的结果。

原文地址:https://www.cnblogs.com/asia-yang/p/10046442.html

时间: 2024-11-08 09:54:14

(五)字典,集合的相关文章

列表字符串元组字典集合

列表字符串元组字典 一.列表 1.li.append() #添加元素到末尾,返回none 2.li.clear() #一个比较危险的方法(QAQ) 3.li.copy() #复制 不是同一个对象(内存地址不一样) 4.li.count() #计算列表里的元素出现的次数 5.li.extend([]) #可迭代的参数 6.li.index() #默认返回元素第一次出现的位置,可以添加查找范围 7.li.insert() #指定索引插入元素 8.li.pop() #默认删除最后一个元素,可以指定索引

python学习列表字符串字典集合文件操作字符串编码与转换

一.列表 1 names = "ZhangYang GuYun XiangPeng XuLiangchen" 2 names = ["ZhangYang", "GuYun", "XiangPeng", "ChengRongHua","XuLiangchen"] 3 names.append("LeiHaiDong") #在列表最后追加一个元素 4 names.inse

python :列表 字典 集合 类 ----局部变量可以改全局变量

#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def func(names): names[0]='金角大王' print("inside name:" ,names) func(names) print (names) #字符串 name='jack' name1=name name='jack_chen' print(name,name1

python中列表 元组 字典 集合的区别

列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复项的.如果我们扩大清单的范围,统计我们过去一周所有的花费情况,那么这也是一个清单,但这个清单里会有类别不同的项,比如我们买东西是一种花费,交水电费也是一种花费,这些项的类型是可以使不同的.pyt

【学习ios之路:Object-C】字典.集合.

1.不可变数据字典(NSDicionary) 字典:用来存储具有一一对应关系的数据. 一个key 对应一个 value ,key起到了唯一标示的作用,key必须是唯一的,但是一个vlaue可以对应多个key. 字典存储的是无序的元素,一对键值对组成了字典中的一个元素. ①.不可变字典初始化赋值 <span style="font-size:18px;"> //笑笑语法 NSDictionary *dic = @{@"name":@"zhangd

Swift字典集合

字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. 如下图所示是字典结构的"学号与学生"集合,学号是键集合,不能重复,学生是值集合,可以重复. 提示 字典中键和值的集合是无序的,即便在添加的时候是按照顺序添加的,当取出这些键或值的时候,也会变得无序.字典集合更适合通过键快速访问值,就像查英文字典一样,键就是要查的英文单词,而值是英文单词的

OC 字典 集合

用字典能有什么好处? 字典是个大容器,它能够储存多个数据 用字典存储的数据具有一一对应的关系(使用key来标识value) 字典中一对键值对(key-value)叫做字典中的一个元素,也叫一个条目,只要是对象就可以,不限制类型 字典是无序的 字典中的key是唯一的,一个key只能对应一个value,一个value可以对应多个key 创建字典对象: 1.便利构造器(+号方法): NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKe

c#将枚举转换成字典集合

枚举在软件开发中的用途 1. 枚举类型(enum type)是具有一组命名常量的独特的值类型. 2. 枚举的定义: public enum Sex { 男 = 0, 女 = 1 } 或者:如果只给男赋值,那么女=1 public enum Sex { 男 = 0, 女 } 3. 我们在实际开发中,对于数据库的设计会经常需要很多状态字段(比如性别.审核状态.分类状态等等等等),而这些状态字段的值又只有固定的几个,这个时候我们一般会需要数据字典来维护这些数据.而数据字典该以什么形式存在呢? 以我自己

python基础一 -------如何在列表字典集合中根据条件筛选数据

如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) 1 filter(lambda x:x>0,data) 3,列表推倒式 4,效率对比:还是列表推导式稍高 二:字典 1,跟列表类似,推导式 先生成随机的字典(key从1-20) 过滤掉value是负数的值 三:集合 随机生成10个元素的集合 过滤掉小于0的元素,跟字典类似

初识Swift集合之字典集合

字典集合 字典表示一种非常复杂的集合, 允许按照某个键来访问元素 字典集合的声明与初始化: var strudentDictionary1 : Dictionary<Int , String> = [102 : " Jack" , 105 : "Mark" , 107 : "Jay"] ; //这里声明里一个strudentDictionary1 的字典集合,他的键是 Int 类型,他的值为String类型 var strudentD