Python学习(六)字典 集合
1、字典(排列无序)
帮助用户去表示一个事物的信息(事物是有多个属性)
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此创建字典:
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
独有功能:
info = {'name':'张三','age':28,'gender':'男','hoppy':'打篮球'}
keys:获取字典中所有的键
print(info.keys())#获取字典中所有的键 dict_keys(['name', 'age', 'gender', 'hoppy'])
for item in info.keys():
print(item)
values:获取字典中所有的值
print(info.values())#获取字典中所有的值 dict_values(['张三', 28, '男', '打篮球'])
for item in info.values():
print(item)
items:获取字典中所有的键值对
print(info.items())#获取字典中所有的键值对 dict_items([('name', '张三'), ('age', 28), ('gender', '男'), ('hoppy', '打篮球')])
for v1,v2 in info.items():#将键值赋值给v1 v2
print(v1,v2)
get:通过健来查看,如果这个健不在这个字典中.就会返回None
info = {'k1':'v1','k2':'v2'}
v1 = info['k3']
v2 = info.get('k3') #None就是Python中的空
v3 = info.get('k3',666)#我们可以在get查找的时候自己定义返回的结果
print()
#None数据类型,该类型表示空(无任何功能,专门用于提供空值)
pop / del:删除
info = {'k1':'v1','k2':'v2'}
result = info.pop('k2')
print(info,result)
del info['k1']
print(info)
update:不存在,则添加;存在,则更新
info = {'k1':'v1','k2':'v2'}
#不存在,则添加;存在,则更新
info.update({'k3':'v3','k4':'v4','k2':666})
print(info)
练习题:
dict_ = {'name':'alex','password':'oldboy'}
user = input('用户:')
pwd = input('密码:')
if user == dict_['name'] and pwd ==dict_['password']:
print('ok')
else:
print('No')
# 1获取张三 info = {'name': '张三', 'age': 28, 'gender': '男', 'hoppy': '打篮球'} v = info['name'] print(v) # 2请输出所有的键 for v2 in info.keys(): print(v2) # 3请输出所有的键和值 for a, b in info.items(): print(a, b) # 4请输出所有键和值,并让用户输入 name/age/gender/hoppy,根据用户输入输出对应的值 flag = input('请输入:name/age/gender/hoppy:')#'name' print(flag,info[flag])#info['name'] # 5给你一个字典,请在空字典中添加数据:k1:1,k2:2,k3:3 dict_ = {} dict_['k1'] = '1' dict_['k2'] = 2 dict_['k3'] = 3 print(dict_) # 6给你一个字典,请让用户输入:key,value,将输入的key和value添加到字典中 count = {} key = input('请输入key:') value = input('请输入value') count[key] = value print(count) # 7给你一个字典,请让用户输入:key,value,将输入的key和value添加到字典中,直到用户输入N,则表示不再输入 count = {} while True: key = input('请输入key:') if key.upper() == "N": break value = input('请输入value:') count[key] = value print(count) # 8使用代码实现 '''c = "a1|s1,a2|s2,...." ==》d = {'a1'='s1','a2'='s2',}''' d = {} c = "a1|s1,a2|s2" for item in c.split(','): print(item) a,s = item.split('|') print(a,s) d[a] = s print(d) # 9创建一个用户列表,然后用户输入用户名和密码进行登录 #构建用户列表: user_lite = [] while True: z = input('请录入用户名:') if z.upper() == "N": print('退出录制') break x = input('请录入密码:') user_dict = {'user':z,'pwd':x} user_lite.append(user_dict) print(user_lite) #用户输入用户名和密码进行登录 while True: nameuser = input('请输入用户名:') password = input('请输入密码:') message = '登录失败' for item in user_lite: if item['user'] ==nameuser and item['pwd'] == password: message = '登录成功' break print(message)
2.集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...}
或者
set(value)
独有功能
添加:add
a = {1,2}
a.add('aaa')
a.add('aaa')
print(a)
删除:discart
a.discard(2) print(a)
批量添加:
a.update({11,22,33})
print(a)
交集、并集、差集
b = {9,8}
#交集
result = b.intersection({1,2,'aaa',22})#或使用([])格式
print(result)
#并集
result = b.union({'q','w','e'})#。。。
print(result)
#差集
result = b.difference({1,2,'aaa',22})#a集合中有且{1,2,'aaa',22}中没有的#。。。
print(result)
#对称差集
result = b.symmetric_difference({'q','w',9})
print(result)
浙公网安备 33010602011771号