Python学习(7)基础

Python基础学习

时间2020-2-16

4、字典dict:

{ }括起来的键值对
{键:值}
{key1:value1,key2:value2, …}
一对一对出现
1. 定义字典:

a = {'name': '嘿嘿', 'age': '12'}
print(a)
#{'name': '嘿嘿', 'age': '12'}

2.关于键和值 :
字典没有下标
(1)键key:键不可重复,可以为None

a = {None: '1', True: False, 'name': '嘿嘿嘿', 'age': 10, 10: 'hhh', (1, 2, 3): 'abc'}
print(a)
#{None: '1', True: False, 'name': '嘿嘿嘿', 'age': 10, 10: 'hhh', (1, 2, 3): 'abc'}
a = {[1, 23]: 'a'}
print(a)
#TypeError: unhashable type: 'list'
a = {{1: 2}: 'a'}
print(a)
#TypeError: unhashable type: 'dict'

由上可知键不可以是列表和字典,原因是列表和字典都是可以改变的类型,其他的6类都是不可动态改变的

键可以为整数类型
键可以为布尔类型
键可以为浮点类型
键可以为字符串类型
键可以为元组
键可以为None
——————不可变—————
键不可以可以为列表
键可以为字典
——————可变——————

注:若键值重复,后面的键会覆盖掉前面的键

a = {'name': '嘿嘿', 'name': '哈哈'}
print(a)
#{'name': '哈哈'}

(2)值value:值可重复,可以为None
可以为任意类型

a = {None: '1', True: False, 'name': '嘿嘿嘿', 'age': 10, 10: 'hhh', (1, 2, 3): 'abc', 1: [2, 3], 2: {'name2': None}}
print(a)
#{None: '1', True: [2, 3], 'name': '嘿嘿嘿', 'age': 10, 10: 'hhh', (1, 2, 3): 'abc', 2: {'name2': None}}

3.字典的内置函数及方法:

# d = {'name': '嘿嘿', 'age': 1239, 'score': 123, 'height': 2134}
# print(len(d))
# print(max(d))  # 判断键最大值
# print(min(d))

# d.clear()  # 清空
# print(d)

# print(d.pop('age'))  # 无默认值,按键删除并返回    有返回值

# print(d.popitem())  # 返回并删除最后一项 没有值 默认最后
# print(d)

# d_ = d.copy()  # 浅复制,复制地址
# print(id(d['name']))
# print(id(d_['name']))

# print(d.get('name'))  # 取值 取key值返回value
# print(d['name'])  # 等价

# d.update(age=123)#更新--》改值
# print(d)

# print(d.items())  # 返回列表
# dict_items([('name', '嘿嘿'), ('age', 1239), ('score', 123), ('height', 2134)])
# for key, value in d.items():
#     print(key, value)

# print(d.values())  # 获取所有值组成列表
# print(d.keys())  # 获取所有键组成列表
# 可以通过key找value,反过来不行
# for key in d.keys():
#     print(key, d.get(key))

# d_ = d.fromkeys('name', 'age')  # 用前置当键,后置为值,额外赋值则是都赋一样的值
# d__ = d.fromkeys(('name', 'age'), ('heihei', 123))
# print(d__)

# d.setdefault('name', 'hhh')
# print(d)
#额外:
# 排序:按value的大小排序
dict1 = {'name': "张三", 'age': 50}
dict2 = {'name': "李四", 'age': 20}
dict3 = {'name': "王五", 'age': 32}
dict4 = {'name': "赵六", 'age': 61}

# t.sort(key=operator.itemgetter(’b‘),reverse=True) #默认为升序, reverse=True为降序
list = [dict1, dict2, dict3, dict4]
list_ = sorted(list, key=lambda e: e['age'])
print(list_)
发布了7 篇原创文章 · 获赞 1 · 访问量 353

猜你喜欢

转载自blog.csdn.net/weixin_43464797/article/details/104346598