字典常用操作

'''字典的方法
d1.get()        d1.setdefault() d1.pop()        d1.popitem()      
d1.copy()       d1.update()     
d1.items()      d1.keys()       d1.values()            
d1.fromkeys()
d1.clear()       
'''

# 创建
d1 = {'name': 99, 3: 'z', 'l': [1, 2]}
print(d1)
d2 = dict(name=99, l='z', m=[2, 4])  # 这种创建字典的方式一般key为字符串,value为数字的时候使用
print(d2)
d3 = dict((['age', 18], [0, 99], ['l', ['3', 2]], [3, 5]))
print(d3)
d4 = dict([['age', 18], [0, 99], ['l', ['3', 2]], [3, 5]])   # 如左边所示,创建字典都可以这样
print(d4)                                                    # 不过大家一般使用([( , )( , )])
d5 = dict([('age', 18), (0, 99), ('l', ['3', 2]), (3, 5)])   # 这种方式来创建字典比较规范
print(d5)
d5[0] = 33   # 不会因为创建时用的是元组所以没法更改value
print(d5)

print('删除')
# 删除
d5.clear()
print(d5)    # clear() 清空操作
# del d5     # 删除操作
# print(d5)
# del(d4)      # 删除可以使用del(**)或者 del **
# print(d4)
del d1['l']      # 这两个是删除具体的键值对的,参数是key
del(d1['name'])
print(d1)
d1.pop(3)      # 必须写入要删除的key值,这样才能删除对应键值对
print(d1)
print(d2)
r = d2.popitem()    # popitem() 直接删除最后一个键值对,并且返回删除的键值对
print(r)
print(d2)
s1, s2 = d2.popitem()
print(s1)
print(s2)


print('修改:')
# 修改
d1[3] = '不是z'  # 直接用下标改值就行
d1['name'] = '刚加的'   # 如果字典不存在这个key则直接添加进去
print(d1)
d1.update(([('sex', 12), ['age', 18]]))
print(d1)
print(d2)        # update( )里面参数一般使用([( , )( , )])来添加,元组里面也可以是列表嵌套,不过这个最规范
d1.update(d2)    # 或者update( )里面可以放进别的字典作为参数
print(d1)        # 修改方法是把没有的键值对放进去,如果有存在的key,则对比value
                 # 如果value不一样,则把新的(参数)value更新进去

print('查找')
# 查找
n = d1.get('不是z', d1)   # get(要查找的key,没找到返回的值),如果找到了则返回对应的value
n1 = d1.get('name')   # 如果没有找到则返回第二个参数的值,类型应该是任意类型,如左边就返回了一个字典
print(n)
print(n1)
n3 = d1.setdefault('不是z', d2)  # 跟get()用法类似,只不过它在没有找到的时候不仅仅返回第二个参数
print(n3)                       # setdefault()还把没有查找到的key添加进去了,第二个参数作为value
print(d1)

print('操作')
# 操作
print(d2)
k = d2.keys()      # 取字典中的key
v = d2.values()    # 取字典中的value
it = d2.items()    # 取字典中的键值对
print(k)
print(v)
print(it)

d6 = dict.fromkeys('hello', 22)  # fromkeys(可迭代的序列,值)拆分每个可迭代的序列,每个元素作为一个key
print(d6)                        # 第二个参数作为每一个元素的value,构成字典

# 遍历
# for k in d2:
#     print(k)
print(d2)
print('打印枚举序列')
for k, v in enumerate(d2):   # 只要涉及enumerate的时候就必然包括序号和对应的值,字典中对应的是key
    print(k)                 # 别的基本都是下标所对应的
    print(v)
print('打印key')
for k in d2.keys():
    print(k)
print('打印value')
for v in d2.values():
    print(v)
print('打印键值对')
for i in d2.items():
    print(i)
print('对键值对拆包')
for key, value in d2.items():
    print(key)
    print(value)

# 1: 1 ,2: 4 3:9
dict1 = {i: i ** 2 for i in range(10)}  # 列表推导式
print(dict1)

# 合并两个列表为字典
list1 = ['name', 'age', 'sex']
list2 = ['gui', 30, 'man']
dict2 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict2)

# 字典键值对互换
d33 = {'name': 99, 3: 'z', 'l': 'L'}
d22 = dict()
for k, v in d33.items():
    d22[v] = k
print(d33)
print(d22)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏待你如初见

java基础05

11420
来自专栏抠抠空间

字典 (dict) 的增删改查及其他方法

一、字典的简介     字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果...

29470
来自专栏Golang语言社区

Go 语言数组

Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。 相...

378100
来自专栏微信公众号:Java团长

Java基础03 构造器与方法重载

在Java基础02 方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initialization)。初始化时,对象的数据成员被赋予初始值。我们...

9810
来自专栏python读书笔记

python数据分析基础day4-字典字典的定义字典创建字典元素的获取字典的排序

今天说一下重要的数据类型,字典。 字典的定义 python中字典类型就是键值对的集合,其中键在一个字典中必须是唯一的,值没有这个要求。此外,值可以是数值,字符串...

31970
来自专栏每日一篇技术文章

Swift3.0 - 初始化和释放

1.系统要求存储属性必须初始化 2.可选值可以不用初始化,如果不初始化值,系统默认用nil初始化它 3.如果非可选类型存储属性不设置默认值,则必须在初始化方...

10510
来自专栏Vamei实验室

Java基础03 构造器与方法重载

在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initialization)。初始化时,对象的数据成员被赋予初始值。我们可以显式初始化。如...

216100
来自专栏逆向技术

C语言第八讲,指针*

            C语言第八讲,指针* 一丶简单理解指针 说到指针,很多人都说是C语言的重点. 也说是C语言的难点. 其实指针并不是难.而是很多人搞不清地...

41260
来自专栏Java后端生活

解决JavaScript加减乘除的精度问题

25470
来自专栏北京马哥教育

Python 变量类型详解

豌豆贴心提醒,本文阅读时间5分钟,文末有秘密! ? 文 | 豌豆 图 | 来源网络 变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空...

45140

扫码关注云+社区

领取腾讯云代金券