字典是python中惟一的映射类型,采用键值对(key-value)的形式存储数据,查询速度快。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,因此字典是无序存储的,且key必须是可哈希的。python
可哈希表示key必须是不可变类型,如:数字、字符串、元组。git
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。二者之间的区别在于:字典当中的元素是经过键来存取的,而不是经过偏移存取。数据结构
数据类型分类:
可变数据类型(不可哈希):list,dict,set。
不可变数据类型(可哈希):int,bool,str,tuple.
字典的键:不可变数据类型。
字典的值:任意数据类型。
容器类型:
容器类(承载各类数据类型):list,tuple,dict。.
字典的键是惟一的。
字典的顺序:
3.5以前,字典是无序的。
3.6开始,字典建立的时候,按照必定的顺序插入的数值,看起来是有序的。app
dic = {"name":"jin", "age":18, "sex":"male",} # 字典的增 # 第一种:有则覆盖,无则增长 dic['hobby'] = 'girl' print(dic) # 第二种:有则不变,无则增长 dic.setdefault('hobby') # 无value时默认为None dic.setdefault('hobby', 'girl') # 字典的删 dic.pop(key, None) # 有返回值,为删除的value,无则报错 dic.popitem() # 随机删除,有返回值 dic.clear() # 清楚字典 del dic[key] # 删除字典或按key删除 # 字典的改 dic['name'] = 'alex' print(dic) dic2 = {"name":"alex","weight":75} dic.updata(dic2) # 将dic2迭代添加并覆盖dic里已有的 # 字典的查 print(dic['name']) # 无则报错 print(dic.get('name'))#无则返回None(能够自定义返回内容)
# 其余方法 dic = {"name":"jin", "age":18, "sex":"male"} print(dic.keys()) dict_keys(['name', 'age', 'sex']) print(dic.values()) dict_values(['jin', 18, 'male']) dic.keys()和dic.vaues()能够for循环里面的元素 for i in dic = for i in dic.keys() li = list(dic.keys()) # 变成列表 print(dic.items()) dict_items([('name', 'jin'), ('age', 18), ('sex', 'male')]) for k, v in dic.items(): print(k, v)
概念:分别赋值函数
a = 4
b = 5
a, b = b, a
print(a,b)spa
dic = {"name_list":['张三','lisi','隔壁王叔叔'], 'dic2':{'name':'太白','age':12} } # 1 ,给列表追加一个元素:'旺旺' dic['name_list'].append('旺旺') print(dic) #,2,给列表lisi所有大写 dic['name_list'][1] = dic['name_list'][1].upper() print(dic) #3,给dic2 对应的字典添加一个键值对:hobby:girl dic['dic2']['hobby'] = 'girl' print(dic)
# 四、有字符串"k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}
s = 'k:1|k1:2|k2:3|k3:4' dic = {} s = s.split('|') for i in s: i = i.split(':') dic[i[0]] = i[1] print(dic)
五、元素分类code
有以下值li= [11,22,33,44,55,66,77,88,99,90],将全部大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。对象
即: {'k1': 大于66的全部值列表, 'k2': 小于66的全部值列表}blog
li= [11,22,33,44,55,66,77,88,99,90] dic = {} dic['k1'] = [] dic['k2'] = [] for i in li: if i >= 66: dic['k1'].append(i) else: dic['k2'].append(i) print(dic)
六、输出商品列表,用户输入序号,显示用户选中的商品ip
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑
…
2: 用户输入选择的商品序号,而后打印商品名称
3:若是用户输入的商品序号有误,则提示输入有误,并从新输入。
4:用户输入Q或者q,退出程序。
li = ["手机", "电脑", '鼠标垫', '游艇'] shopping_cart = [] for i, name in enumerate(li, 1): print(i, name) while True: choice = input('请选择商品序号:').strip() if choice.upper() == 'Q': print('----------您已购买如下商品----------') for k in shopping_cart: print(k) break if choice.isdigit() and int(choice) <= len(li): choice = int(choice) shopping_cart.append(li[choice-1]) print(li[choice-1]) else: print('您输入有误,请从新输入!')