字典是一系列键—值对,每个键都与一个值相关联,可以通过键来访问与之相关联的值
dick={key1:value1,key2:value2}
dict1={
'name':'tom','age':12}
print(dict1,type(dict1))
输出:
{
'name': 'tom', 'age': 12} <class 'dict'>
dict1={
'name':'tom','age':12}
print('name' in dict1) ##True
print('tom' in dict1) ##False
dict1={
'name':'tom','age':12}
print(dict1) ##{'name': 'tom', 'age': 12}
# 查看字典所有的key值
print(dict1.keys()) ##dict_keys(['name', 'age'])
# 查看字典所有的value值
print(dict1.values()) ##dict_values(['tom', 12])
查看字典所有的key-value值(item元素)
print(dict1.items()) ##dict_items([('name', 'tom'), ('age', 12)])
# 查看key对应的vlaue值,如果不存在会报错
dict1={
'name':'tom','age':12}
print(dict1['name']) ##tom
print(dict1['class']) ##报错
# get()查看key对应的vlaue值,如果不存在返回None
print(dict1.get('name')) ##tom
print(dict1.get('class')) ##None
# get()查看key对应的vlaue值, 如果存在则返回,如果不存在则返回默认值.
print(dict1.get('class','linux')) ##linux
# get()查看key对应的vlaue值,默认值不生效
print(dict1.get('name','jerry')) ##tom
dict1={
'name':'tom','age':12}
# key不存在就添加
dict1['class']='linux'
print(dict1) ##{'name': 'tom', 'age': 12, 'class': 'linux'}
dict1={
'name':'tom','age':12}
# key存在则修改value值
dict1['name']='jerry'
print(dict1) ##{'name': 'jerry', 'age': 12}
dict1={
'name':'tom','age':12}
dict1.setdefault('class','linux')
print(dict1) ##{'name': 'tom', 'age': 12, 'class': 'linux'}
dict1.setdefault('class','linux')
print(dict1) ##{'name': 'tom', 'age': 12, 'class': 'linux'}
dict1={
'name':'tom','age':12}
dict1.pop('name')
print(dict1) ##{'age': 12}
dict1={
'name':'tom','age':12}
del dict1['name']
print(dict1) ##{'age': 12}
(1) 默认情况下,字典只会遍历key值
dict1={
'name':'tom','age':12}
for i in dict1:
print(i)
输出:
name
age
(2)遍历字典的key
dict1={
'name':'tom','age':12}
for i in dict1.keys():
print(i)
输出:
name
age
(3)遍历字典的value
dict1={
'name':'tom','age':12}
for i in dict1.values():
print(i)
输出:
tom
12
(4)遍历字典的key和value
dict1={
'name':'tom','age':12}
for i in dict1.items():
print(i)
输出:
('name', 'tom')
('age', 12)
dict1={
'name':'tom','age':12}
for k,v in dict1.items():
print(k,v)
输出:
name tom
age 12
创建一个空集合必须用 set() 而不是 { }
,因为 { } 是用来创建一个空字典set1=set()
set2={
}
set3={
1,2,4,'a'}
print(set1,type(set1)) ##set()
print(set2,type(set2)) ##{}
print(set3,type(set3)) ##{1, 2, 4, 'a'}
set1={
1,2,4,[1,4]}
print(set1,type(set1)) ##TypeError: unhashable type: 'list'
set1={
1,2,4}
print(1 in set1) ##True
set1.add()
:将元素添加到集合 set1 中,如果元素已存在,则不进行任何操作set1={
1,2,4}
set1.add(7)
print(set1) ##{1, 2, 4, 7}
set1={
1,2,4}
set1.add(2)
print(set1) ##{1, 2, 4}
set1.update()
:添加多个元素,且参数可以是列表,元组,字典等set1={
1,2,4}
set1.update({
1,5,7})
print(set1) ##{1, 2, 4, 5, 7}
set1.remove(x)
:将set1集合中的x元素删除,如果元素不存在会报错set1={
1,2,4}
set1.remove(2)
print(set1) ##{1, 4}
##删除集合不存在的元素
set1={
1,2,4}
set1.remove(3)
print(set1) ##报错
set1.discard()
:移除集合中的元素,如果元素不存在,也不会报错set1={
1,2,4}
set1.discard(2)
print(set1) ##{1, 4}
##删除集合中不存在的元素不会报错
set1={
1,2,4}
set1.discard(3)
print(set1) ##{1, 2, 4}
set1.pop()
set1={
1,2,4}
set1.pop()
print(set1) ##{2, 4}
set1.clear()
set1={
1,2,4}
set1.clear()
print(set1) ##set()
s1={
1,2,3,5}
s2={
1,3,5,7}
print(s1-s2) ##差集{2}
print(s1&s2) ##交集{1, 3, 5}
print(s1^s2) ##对称差分{2, 7}
print(s1|s2) ##并集1 2, 3, 5, 7}
s1={
1,5}
s2={
1,3,5,7}
print(s1.issubset(s2)) ##True
print(s1.isdisjoint(s2)) ##False
d={
"age":12}
print(d['name']) ##KeyError: 'name'
# 默认字典,设置默认value为int
from collections import defaultdict
d=defaultdict(int)
print(d['name']) ## 0
# 默认字典,设置默认value为列表
from collections import defaultdict
d=defaultdict(list)
d['root'].append('tom')
d['user'].extend(['lily','tony'])
print(d)
#defaultdict(, {'root': ['tom'], 'user': ['lily', 'tony']})
import random
n = int(input("输入n:"))
s=set()
for i in range(n):
s.add(random.randint(1,1000))
print(sorted(s,reverse=True))