码迷,mamicode.com
首页 > 其他好文 > 详细

第三天 第四章 字典

时间:2020-08-17 17:53:28      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:字符   遍历字典   两种方法   get   记忆   span   ctc   提高   int   

字典与列表类似,也是可变序列,但它是无序的可变序列,保存的内容以“键值对”的形式存放。一个键(key)对应一个值(value)。键是唯一的,而值可以有多个,也可以重复。

  特点:

1、通过键来读取值:字典也称为关联数组或散列表(hash)。

2、字典是任意对象的无序集合:这样可以提高查找效率。

3、字典是可变的,可以在原处增长或缩短(无须生成一个副本),并且可以任意嵌套。

4、字典中的键必须是唯一:如果出现两个相同的键,只记忆最后一个值。

5、字典中的键不可变,可以使用数字、字符串、元组,但不能使用列表。

# 创建字典时,键和值之间用冒号分隔,相邻的两个元素用逗号分隔,所有元素放在大括号中。
# dictionary = {‘key 1‘:‘value 1‘, ‘key 2‘:‘value 2‘, ‘key 3‘:‘value 3‘,...,‘key n‘:‘value n‘, }

# 创建一个字典,保存QQ号
dictPhone = {zack:25890526, QQ:25890526, 腾讯:10000}
print(dictPhone)

# 创建空字典,有两种方法
dictEmpty1 = {}
dictEmpty2 = dict()
print(dictEmpty1,dictEmpty2)

# 通过映射函数创建字典 : dictionary = dict(zip(list1,list2))
# list1生成字典的键,list2生成字典的值。如果列表长度不同,以短的列表为标准。

list1 = [1,2,3]
list2 = [one,two,three]
tuple1 = (1,2,3)
tuple2 = (one,two,three)
# print(zip(list1,list2))
for i in zip(list1,list1):
    print(i,end=   )
    # (‘1‘, ‘one‘)   (‘2‘, ‘two‘)   (‘3‘, ‘three‘) 

print()
# dictlist = list(zip(list1,list2))
dictlist = dict(zip(list1,list2))
print(dictlist)
dicttuple = dict(zip(tuple1,tuple2))
print(dicttuple)
dictall = dict(zip(list1,tuple2))
print(dictall)

# zip()函数,用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。
# 获取字典则用dict(),获取列表则用list(),获取元组则用tuple()。



# 通过给定关键字参数创建字典:dictionary=dict(key1=value1,key2=value2,...,keyn=valuen)
dictqq=dict(qq=25890526,zack=25890526,腾讯=10000)
print(dictqq)

# 使用dict对象的fromkeys()创建值为空的字典:dictionary=dict.fromkeys(list)
listk=[qq,4,hello]
dictk=dict.fromkeys(listk)
print(dictk)

# 用一个元组和一个列表创建字典
tupleb=(qq,zack,腾讯)
listb=[25890526,25890526,10000]
dictb={tupleb:listb}
print(dictb)

# 不需要的字典可以用del删除:del dictionary

# 删除字典的全部元素:dictionary.clear()

# pop()方法删除并返回指定键的元素
print(dictall)
print(dictall.pop(1))

# popitem()方法删除并返回最后一个元素。
print(dictall)
print(dictall.popitem())


# 通过键下标访问
dictd={apple:25.5,bnana:31.2,orange:16}
print(dictd[bnana])
# 为了避免异常,将上述代码改为如下:
print(dictd[bnana] if bnanaxxx in dictd else 没有此项)
# 另一个避免异常的方法
print(dictd.get(bnana,没有此项))

# 遍历字典:dictionary.items()
dictc = {zack:25890526, QQ:25890526, 腾讯:10000}
dictTemp = dictc.items()
print(dictTemp)
# dict_items([(‘zack‘, ‘25890526‘), (‘QQ‘, ‘25890526‘), (‘腾讯‘, ‘10000‘)])

# 只用一个参数获取的是字典的元素
for i in dictTemp:
    print(i)

# 用两个参数获取的是键和值
for i,j in dictTemp:
    print(i,j)

# 获取每个元素的键
for i in dictc.keys():
    print(i)

# 获取每个元素的值
for i in dictc.values():
    print(i)

# 添加
dictd = {zack:25890526, QQ:25890526, 腾讯:10000}
dictd[zoe] = 147258369 
print(dictd)

dictd[QQ] = 987654321 # 如果键是已经存在,相当于修改
print(dictd)

del dictd[zack] # 删除一个元素,如果删除不存在的元素将抛出一个异常
print(dictd)

if zoe in dictd:
    del dictd[zoe]
    print(dictd)
else:
    print(没有)


# 字典推导式
import random
dicte = {i:random.randint(10,100) for i in range(1,10)}
print(dicte)

name = [绮梦,冷伊一,香凝,黛兰]        # 作为键的列表
sign = [水瓶座,射手座,双鱼座,双子座]  # 作为值的列表
dicte = {i:j for i,j in zip(name,sign)}
print(dicte)

 

第三天 第四章 字典

标签:字符   遍历字典   两种方法   get   记忆   span   ctc   提高   int   

原文地址:https://www.cnblogs.com/zack6688/p/13508818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!