十五·字典

下面我们来讲,四大常用数据类型中的最后一个——字典


  • 字典也是可变的数据类型
  • 字典跟列表一样,能存储任何的数据类型
  • 字典是以大括号{}为标识的
  • 字典的元素表现形式为键值对(key=>value),键与值之间用冒号:分隔,元素与元素之间用逗号分隔

my_dict= {key1 : value1, key2 : value2, key3 : value3 }

  • 特别注意:键一定是不可变类型数据!且键必须是唯一的!(值可以不唯一)

字典:创建

  • 一般键都为字符串

my_dict = {"one":1, "two":2, "three": 3}

  • 也可以为数字

my_dict = {1:"one", 2:"two", 3:"three"}

  • 也可以创建空的字典

my_dict = {}

  • 也可以键的数据类型不是一样的

my_dict = {1:"one", "two":2, 11.11: "test"}


字典:访问值

假设我们的字典为my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}

我们可以使用dict[key]的方式来获取相应的value:

my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}

print(my_dict[1])

print(my_dict[2])

print(my_dict[3])

print(my_dict["1"])

print(my_dict["2"])

print(my_dict["3"])

print(my_dict[4])

结果为:

11

22

33

1

2

3

Traceback (most recent call last):

 File "C:/Users/xxx/PycharmProjects/untitled/Test/test.py", line 8, in

print(my_dict[4])

KeyError: 4 

从上面的例子,我们可以看出,数字1的键和字符串1的键,是两种不同的键。

如果使用了字典中没有的键去获取值,程序就会报错,(就像例子中我们去获取键为4的值)。


字典:更新

  • 字典的更新形式为dict[key] = value
  • 如果key是已有的key,那么会使用新的value把老的value替换掉
  • 如果key是新的key,那么就会在字典中添加新的元素

my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}

my_dict[1] = 1111111 # 修改元素

print(my_dict)

my_dict[55] = "AAAAAAAA" # 添加元素

print(my_dict)

结果为:

{'1': 1, '2': 2, '3': 3, 3: '33', 2: '22', 1: 1111111}

{'1': 1, '2': 2, '3': 3, 3: '33', 2: '22', 1: 1111111, 55: 'AAAAAAAA'}


字典:删除

  • 字典的删除有两种
  • 一种是使用del去删除单个元素
  • 另一种是使用clear函数去清空字典

my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}

del my_dict["1"]

print(my_dict)

my_dict.clear()

print(my_dict)

结果为:

{'2': 2, '3': 3, 3: '33', 2: '22', 1: '11'}

{}


字典:常用方法

len()可以计算字典的元素个数

例子:

my_dict ={"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}

print(len(my_dict))

结果为:

6

str()可以将字典转换成字符串类型

例子:

my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}

print(str(my_dict))

结果为:

{'1': 1, '2': 2, '3': 3, 3: '33', 2: '22', 1: '11'}


字典:常用函数

  • clear() 函数用于删除字典内所有元素。

例子:

my_dict = {"1": 1, "2": 2, "3": 3}

my_dict.clear()

print(my_dict)

my_dict_2 = {3: "33", 2: "22", 1: "11"}

结果为:

{}

  • copy()函数用于复制一份字典
  • 就像是列表的copy()一样,因为字典是可变类型,如果不使用copy(),随便修改一个变量,也会影响到另一个变量

  • get() 函数返回指定键的值。
  • 可选参数为default:如果键不存在时,返回的值。默认为None

例子:

my_dict = {"1": 1, "2": 2, "3": 3}

print(my_dict.get("1"))

print(my_dict.get(1,"不存在你要获取的这个值"))

结果为:

1

不存在你要获取的这个值

  • in 用于判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false。
  •  not in 正好相反,如果键在字典 dict 里返回 false,否则返回 true。

例子:

my_dict = {"1": 1, "2": 2, "3": 3}

print("1" in my_dict)

print("1" not in my_dict)

结果为:

True

False

  • items() 函数是以列表的方式,返回一个可遍历的key/value 对。

例子:

my_dict = {"1": 1, "2": 2, "3": 3}

print(my_dict.items()) # 在这个例子中,我们返回的是一个叫做dict_items的类型,不能直接当做列表来使用

print(list(my_dict.items())) # 我们可以把dict_items强制转换成列表

结果为:

dict_items([('1', 1), ('2', 2), ('3', 3)])

[('1', 1), ('2', 2), ('3', 3)]

  • keys() 函数是以列表的方式,返回一个只有键的列表

例子:

my_dict = {"1": 1, "2": 2, "3": 3}

print(my_dict.keys()) # 在这个例子中,我们返回的是一个叫做dict_keys的类型,不能直接当做列表来使用

print(list(my_dict.keys()))# 我们可以把dict_keys强制转换成列表

结果为:

dict_keys(['1', '2', '3'])

['1', '2', '3']

  • values()函数是以列表的方式,返回一个只有值的列表

例子:

my_dict = {"1": 1, "2": 2, "3": 3}

print(my_dict.values()) # 在这个例子中,我们返回的是一个叫做dict_values的类型,不能直接当做列表来使用

print(list(my_dict.values()))# 我们可以把dict_values强制转换成列表

结果为:

dict_values([1, 2, 3])

[1, 2, 3]

  • popitem()函数会返回字典中的最后一个键值对,并在字典中删除

例子:

my_dict = {"1": 1, "2": 2, "3": 3}

print(my_dict.popitem())

print(my_dict)

结果为:

('3', 3)

{'1': 1, '2': 2}

  • update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。

例子:

my_dict = {"1": 1, "2": 2, "3": 3}

my_dict_2 = {3: "33", 2: "22", 1: "11"}

my_dict.update(my_dict_2)

print(my_dict)

结果为:

{'1': 1, '2': 2, '3': 3, 3: '33', 2: '22', 1: '11'}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值