Python | python基础(六) - 字典和集合
2021-06-07 06:02
标签:操作 tom 参数 tde 功能 关系 没有 内容 图片 字典是什么? 这个字典也可以理解为生活中的字典,就那汉语字典来说,一个事物由名词和解释组成,,这个名词和解释是对应的,如果是学生成绩,就是 如果是说要查找对应的学生的成绩的话,比如,要找 第一步:肯定要先找到张三在表的哪里 第二步:找出对应的成绩 也就是先要遍历学生列表,还要遍历成绩列表,这样随着内容的增多,运算量跟着变大 为什么需要字典? 使用字典的好处就是,学生名字和成绩关系紧密,不需要再次遍历成绩,找到名字,就可以锁定成绩 运行: ???♂?所以字典就是类似这样的功能,有一个索引,通过这个索引可以快速的找到对应的信息位置 python字典 Python字典是一个可变容器模型,可以储存任意的数据类型对象 字典是键-值对形式: 访问字典用中括号 运行: 修改指的: 注意事项和细节: Exampe-01 Exampe-02 ?? 注意:返回 pop,删除key,以及对应的value 要删除一个 1、dict.items() 作用: 把字典中的key和value组成一个元组,然后把元组放在列表中返回 dict可以用在需要 2、dict.clear() 作用: 删除字典内的 删除一个字典用 ?? 字典的元素是由 3、dict.copy() 作用: 返回字典副本(浅赋值) 换一种方式更能说明 4、dict.fromkeys(seq,value) 作用: 创建一个新的 5、dict.get(key,default=None) 作用: 返回指定 详情见 6、dict.keys() 作用: 返回所有键,以 7、dict.setdefault(key,default=None) 作用: 和 8、dict.update(dict2) 作用: 容易理解,就是把dict2的 9、dict.values() 作用: 以列表的形式返回字典中的值 10、type(variable) 11、len(dict) {‘我‘:12,‘你‘:13,‘他‘:14} 12、str(dict) 作用: 返回dict的str字符串 集合是什么? 集合是一个无序不重复的序列 (和数学上的集合概念一样) python集合创建集合的时候,可以存在重复值 (所以 集合的基本功能就是 set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。 1、set( [ ] ) 使用 ?? 注意创建一个空的集合必须使用set(),而不是使用 1、add(key) 作用: 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果 2、remove(key) 作用: 通过remove(key)方法可以删除元素 再议不可变对象 对于可变对象,比如list,对list进行操作,list内部的内容是会变化的 而对于不可变对象,比如str,对str进行操作呢 如果输出a 呢? 猜想: 说明不改变原来变量? Python | python基础(六) - 字典和集合 标签:操作 tom 参数 tde 功能 关系 没有 内容 图片 原文地址:https://www.cnblogs.com/martin-1/p/14855171.html字典和集合
1. 字典
list
[‘张三‘,‘李四‘,‘王五‘,‘小二‘]
[100,89,65,60]
张三
同学的成绩list
越长,耗时越长dict = {‘张三‘:100,‘李四‘:89,‘王五‘:65,‘小二‘:60}
print("dict[张三]",dict["张三"])
dict[张三] 100
如:字符串,数字,元组等,字典也可以被称为关联数组或哈希表1.1. 创建 字典
key-value
dict = {‘zhangsan‘:90,‘wangwu‘:80}
# 或者
dict2 = {‘abc‘:123,98,4:37}
1.2. 访问 字典值
[ ]
dict = {‘Name‘:‘王海‘,‘age‘:17,‘Class‘:‘计算机1班‘}
print("dict[Name]:",dict[‘Name‘])
dcit[Name]:王海
1.3. 修改 字典
>>> dict[‘张三‘]
Traceback (most recent call last):
File "
>>> ‘张三‘ in dict
False
# 访问字典值, 若值不存在设置默认值 存在key
dict = {‘tom‘:10,‘jim‘:20,‘damn‘:30,‘kim‘:40}
c= dict.get(‘tom‘,-1)
print(c) # 10
# 访问字典值, 若值不存在设置默认值 不存在key
dict = {‘tom‘:10,‘jim‘:20,‘damn‘:30,‘kim‘:40}
c= dict.get(‘tom‘,-1) # 第二个参数是对于不存在key的情况,设置key一个默认值-1
print(c) # -1
# 访问字典值,不存在key且没有设置默认值
dict = {‘tom‘:10,‘jim‘:20,‘damn‘:30,‘kim‘:40}
c= dict.get(‘adam‘)
print(c) # None
None
的时候Python的交互环境不显示结果。
key
,用pop(key)方法,对应的value也会从dict中删除dict = {‘Name‘:‘王海‘,‘age‘:17,‘Class‘:‘计算机1班‘}
dict.pop(‘Name‘) # 删除Name key
print(dict) # {‘age‘: 17, ‘Class‘: ‘计算机1班‘}
# 已经删除对应的key-value
1.4. 字典方法和函数
dict = {‘我‘:12.‘你‘:13,‘他‘:34}
a = dict.items()
print(a) # dcit_items([(‘我‘:12),(‘我‘:12),(‘他‘:34)])
# 实际打印出来的是 : [(‘我‘:12),(‘我‘:12),(‘他‘:34)]
高速查找
的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象
。
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希
算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key
所有的元素
dict1 = {‘我‘:12,‘你‘:13,‘他‘:14}
dict2 = {‘天‘:45}
dict1.clear()
print(dict1) # {}
del
语句del dict1
print(dic1) # NameError: name ‘dic1‘ is not defined
key:value
组合成的
dict1 = {‘我‘:12,‘你‘:13,‘他‘:14}
dict2 = {‘天‘:45}
a = dict1.copy()
print(a) # {‘我‘: 12, ‘你‘: 13, ‘他‘: 14}
copy()
的作用: 对象调用方法返回一值作为返回值
>>> dict1 = {‘我‘:12,‘你‘:13,‘他‘:14}
>>> dict2 = {‘天‘:45}
>>> dict3 = dict1.copy()
>>> print(dict3)
{‘我‘: 12, ‘你‘: 13, ‘他‘: 14}
字典
,把seq
中的元素作为这个新字典的key
,把value
作为所有的值>>> list = [1,2,3,4,5]
>>> dict1 = dict1.fromkeys(list,‘中国‘)
>>> print(dict1)
{1: ‘中国‘, 2: ‘中国‘, 3: ‘中国‘, 4: ‘中国‘, 5: ‘中国‘}
key
的值,如果不存在,则返回default设置的默认值>>> dict = {‘中国‘:1 , ‘瓷器‘:2, ‘大唐‘:3 , ‘大明‘:4 , ‘大宋‘:5 }
>>> print(‘value:‘,dict.get(‘中国‘))
value: 1
>>> print(‘value:‘,dict.get(‘大秦‘))
value: None
#### dict1.has_key(key)python3.0以后删除了此方法
列表
的形式,返回字典的所有的键>>> dict = {‘中国‘:1 , ‘瓷器‘:2, ‘大唐‘:3 , ‘大明‘:4 , ‘大宋‘:5 }
>>> print(dict.keys())
dict_keys([‘中国‘, ‘瓷器‘, ‘大唐‘, ‘大明‘, ‘大宋‘])
get()
类似,但是如果键
不存在,会添加键,把default做为value
>>> dict = {‘中国‘:1 , ‘瓷器‘:2, ‘大唐‘:3 , ‘大明‘:4 , ‘大宋‘:5 }
>>> print(‘value:‘,dict.setdefault(‘大清‘,‘大秦‘))
value: 大秦
>>> print(dict)
{‘中国‘: 1, ‘瓷器‘: 2, ‘大唐‘: 3, ‘大明‘: 4, ‘大宋‘: 5, ‘大清‘: ‘大秦‘}
key-value
到dict1中value
>>> dict1 = {‘我‘:12,‘你‘:13,‘他‘:14}
>>> list1 = [‘姓名‘,‘性别‘,‘年龄‘,‘学号‘,‘住址‘]
>>> dict2 = {‘天‘:45}
>>> a = dict1.values()
>>> print(a)
dict_values([12, 13, 14])
>>> type(dict)
>>> len(dict1)
3
>>> str(dict)
"{‘中国‘: 1, ‘瓷器‘: 2, ‘大唐‘: 3, ‘大明‘: 4, ‘大宋‘: 5, ‘大清‘: ‘大秦‘}"
>>> type(str(dict))
2. 集合
print
打印输出的时候不允许有相同值
,会被剔除 )
2.1. 创建 集合
要创建一个set,需要提供一个list
作为输入集合s = set([1, 2, 3])
print(s) # {1, 2, 3}
or
set(){}
或set()
函数{}
,因为{}
是用来创建一个空的字典的# 输出集合,并将重复的元素删除掉
student = {‘Tom‘,‘Jim‘,‘Marry‘,‘Jack‘,‘Tom‘,‘Jim‘}
print(student) # {‘Jack‘, ‘Marry‘, ‘Jim‘, ‘Tom‘}
2.2. 运算 集合
2.3. 集合 方法
set1 = {‘Jack‘, ‘Marry‘, ‘Jim‘, ‘Tom‘}
set1.add(‘martin‘)
print(set1) # {‘Jack‘, ‘Jim‘, ‘Tom‘, ‘martin‘, ‘Marry‘}
set1 = {‘Jack‘, ‘Marry‘, ‘Jim‘, ‘Tom‘}
set1.remove(‘Jim‘)
print(set1) # {‘Tom‘, ‘Jack‘, ‘Marry‘}
>>> list1 = [3,2,1]
>>> a= list1.sort()
>>> list1
[1, 2, 3]
>>> print(a)
None
a = ‘abc‘
c = a.replace(‘a‘,‘A‘)
print(c) # Abc
>>> a = ‘abc‘
>>> c = a.replace(‘a‘,‘A‘)
>>> print(a)
abc
文章标题:Python | python基础(六) - 字典和集合
文章链接:http://soscw.com/index.php/essay/91609.html