python中字典的用法

字典是一种标准映射类型,简单的示例来进行说明:

x = {"0":48, "1":49, "2":50, "3":51, "4":52, "5":53, "6":54, "7":55, "8":56, "9":57}

print(type(x))
## <class 'dict'>

print(x["0"])
## 48
#字典的调用

x[":"] = 58
print(x[":"])
## 58
#字典元素的增添

1.创建字典:

        (1)直接使用大括号和冒号的组合来构建映射关系。

        (2)使用dict()函数(与list()等函数类似),其每个参数是一个对应的键值对,键与值之间直接使用等号挂钩。

x = dict(0=48, 1=49, 2=50, 3=51, 4=52)
#其要求是不能往键上加引号

        (3)使用列表作为参数,列表中的每个元素是使用元组包裹起来的键值对。

x = dict([("0", 48), ("1", 49), ("2", 50), ("3", 51)])

        (4)以上多种方式可以混合使用。

        (5)使用zip()函数传入:

x = dict(zip(["0", "1", "2"], [48, 49, 50]))

2.字典的增添

        fromkeys(iterable[, values]) 可以使用itrable参数指定的可迭代对象来创建一个新的字典,并将所有的值初始化为values参数指定的值。

x = "IloveCloud"

y = dict.fromkeys(x, 520)

print(y)
## {'I': 520, 'l': 520, 'o': 520, 'v': 520, 'e': 520, 'C': 520, 'u': 520, 'd': 520}
#适用于创建一个所有键的值都相同的字典。

#若要修改某一键值对可:
y['I'] = 13
print(y)
## {'I': 13, 'l': 520, 'o': 520, 'v': 520, 'e': 520, 'C': 520, 'u': 520, 'd': 520}
#如果在字典中找不到对应的键,则增加一个新的键值对
y['L'] = 17
print(y)
## {'I': 13, 'l': 520, 'o': 520, 'v': 520, 'e': 520, 'C': 520, 'u': 520, 'd': 520, 'L': 17}

3.字典的删除 

        pop函数,popitem函数,del关键字,clear函数等可以进行字典的删除。

x = "IloveCloud"

y = dict.fromkeys(x, 520)
z = y

print(y)
## {'I': 520, 'l': 520, 'o': 520, 'v': 520, 'e': 520, 'C': 520, 'u': 520, 'd': 520}

print(y.pop('u'))
print(y)
#函数中的参数即要删去的键,返回值为键对应的值
## 520
## {'I': 520, 'l': 520, 'o': 520, 'v': 520, 'e': 520, 'C': 520, 'd': 520}

print(y.popitem())
print(y)
#删除字典中最后加入的键值对,返回值为对应的键值对
## ('d', 520)
## {'I': 520, 'l': 520, 'o': 520, 'v': 520, 'e': 520, 'C': 520}

#del关键字也可以用于键值对和字典的删除
del y['C']
print(y)
del y
## {'I': 520, 'l': 520, 'o': 520, 'v': 520, 'e': 520}

#若要删除字典中的内容而不是整个字典,则用clear函数
z.clear()
print(z)
## {}

4.字典的更改

x = "IloveCloud"

y = dict.fromkeys(x, 520)

y.update({'I':1013, 'C':7})
print(y)
## {'I': 1013, 'l': 520, 'o': 520, 'v': 520, 'e': 520, 'C': 7, 'u': 520, 'd': 520}
#或者
y.update(l=1, o=3, u=1, d=4)
print(y)
## {'I': 1013, 'l': 1, 'o': 3, 'v': 520, 'e': 520, 'C': 7, 'u': 1, 'd': 4}

5.字典的查阅

x = "IloveCloud"

y = dict.fromkeys(x, 520)

print(y['I'])
## 520
#查找键所对应的值,缺点是查找不存在的键时会报错
#而get()可以很好的解决问题 get(key[, default])
print(y.get("i", "The key is not exist"))
## The key is not exist

 items(),keys(),values()方法:

分别用于获取键值对、键和值三者的视图对象。

视图对象即字典的动态视图,这就意味着当字典的内容发生改变的时候,视图对象的内容也会相应地跟着改变。

x = "IloveCloud"

y = dict.fromkeys(x, 520)

keys = y.keys()
values = y.values()
items = y.items()

print(keys)
print(values)
print(items)
## dict_keys(['I', 'l', 'o', 'v', 'e', 'C', 'u', 'd'])
## dict_values([520, 520, 520, 520, 520, 520, 520, 520])
## dict_items([('I', 520), ('l', 520), ('o', 520), ('v', 520), ('e', 520), ('C', 520), ('u', 520), ('d', 520)])
#若字典的内容发生改变,则视图对象也发生改变
y.pop('d')
print(keys)
print(values)
print(items)
## dict_keys(['I', 'l', 'o', 'v', 'e', 'C', 'u'])
## dict_values([520, 520, 520, 520, 520, 520, 520])
## dict_items([('I', 520), ('l', 520), ('o', 520), ('v', 520), ('e', 520), ('C', 520), ('u', 520)])


6.字典的其余用法

x = "IloveCloud"

y = dict.fromkeys(x, 520)

z = y.copy()
print(z)
## {'I': 520, 'l': 520, 'o': 520, 'v': 520, 'e': 520, 'C': 520, 'u': 520, 'd': 520}
#字典的浅拷贝

print(len(y))
## 8
#获取字典中键值对的数量

print('C' in y, 'X' in y, 'a' not in y)
## True False True

print(list(y))
## ['I', 'l', 'o', 'v', 'e', 'C', 'u', 'd']
#将字典转化为列表 = list(y.keys())  同理存在list(y.values())。

a = iter(y)
#将字典转换为迭代器
print(next(a))
print(next(a))
## I
## l

7.字典的嵌套

x = {'a':{'Chinese':100, 'math':100, 'English':100},
     'b':{'Chinese':120, 'math':90, 'English':130},
     'c':{'Chinese':120, 'math':110, 'English':120}}

print(x['a']['math'])
## 100
#同理字典中也可以嵌套其他的序列,如

y = {'a':[100 ,100, 100],
     'b':{'Chinese':120, 'math':90, 'English':130}}
print(y['a'][2])
## 100


8.字典推导式

x = "ILoveCloud"

y = {a:ord(a) for a in x}
print(y)
## {'I': 73, 'L': 76, 'o': 111, 'v': 118, 'e': 101, 'C': 67, 'l': 108, 'u': 117, 'd': 100}
#通过字符推导式循环将x字符串的每一个元素进行ord操作。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值