前锋python百度云_python从0到1--8.字典与集合

1.字典

字典和列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以“键值对”的形式存放的。

字典特征主要如下:

通过键而不是通过索引来读取

字典是任意对象的无序集合

字典是可变的,并且可以任意嵌套

字典中的键必须唯一

字典中的键必须不可变

1.1字典的创建和删除

定义字典时,每个元素都包含两部分“键”和“值”;语法格式如下:

dictionary = {'key1':'value1','key2:value2'.....'keyn':'valuen'}

参数说明:

dictionary:表示字典名称

key:表示元素的键,必须是唯一的,并且不可变。可以是字符串,可以是数字或者元组

value:表示元素的值,可以是任何数据类型,不是必须唯一。

例如:

dictionary = {"石佛":"邓肯","黑曼巴":"科比"}print(dictionary)print(dictionary["石佛"])

运行结果:

{'石佛': '邓肯', '黑曼巴': '科比'}

邓肯

同列表和元组一样,在python中也可以创建空字典。使用下面两种方式:

dictionary = {}

或者

dictionary = dict()

python 的dict()方法除了可以创建一个空字典外,还可以通过已有数据快速创建字典。主要表现形式为一下两种:

a.通过映射函数创建字典,语法如下:

dictionary = dict(zip(list1,list2))

参数说明:

dictionary:表示字典名称

zip()函数:用于价将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想得到元组,可以使用tuple函数将zip对象转换为元组;如果想得到列表,则可以使用list函数将其转换为列表。

list1:一个列表,用于指定要生成字典的键

list2:一个列表,用于指定要生成字典的值

返回值:如果list1和list2的长度不同,则与最短的列表长度相同。

例如:

name = ["邓肯","吉诺比利","帕克","科比"]

sign= ["石佛","妖刀","法国跑车"]

dictionary=dict(zip(name,sign))print(dictionary)

运行结果:

{'邓肯': '石佛', '吉诺比利': '妖刀', '帕克': '法国跑车'}

b.通过给定的“关键字参数”创建字典,语法如下:

dictionary = dict(key1=value1,key2=value2........,keyn=valuen)

例如:

dictionary = dict(邓肯 = "石佛",吉诺比利 = "妖刀")print(dictionary)

另外,还可以通过已经存在的元组和列表创建字典。例如:

name_tuple = ("邓肯","吉诺比利","帕克") #作为键的元组,注意一个键

sign = ["石佛","妖刀","法国跑车"] #作为值的列表,一个值

dict1 = {name_tuple:sign} #创建字典

print(dict1)

运行结果:

{('邓肯', '吉诺比利', '帕克'): ['石佛', '妖刀', '法国跑车']}

删除

同列表和元组一样,不再需要的字典也可以视同del命令删除整个字典。del dictionary

如果只是想删除字典的全部元素,可以使用字典对象的clear()方法实现。执行clear方法后,原字典变为空字典。dictionary.clear()

还可以使用字典对象的pop()方法删除并返回指定键的元素

1.2通过“健值对”访问字典

直接通过访问字典的键输出值

假如不知道当前存在什么键,所以需要避免该异常的产生。可以通过如下方式:

dictionary = {"邓肯":"石佛","科比":"黑曼巴","梭罗":"小土豆"}print("罗宾逊的绰号是:",dictionary['罗宾逊'] if "罗宾逊" in dictionary else '我的字典里没有此人')

另外,python推荐的方法是用时字典对象的get()方法获取指定的值。如:

dictionary = {"邓肯":"石佛","科比":"黑曼巴","梭罗":"小土豆"}print("科比的绰号是:",dictionary.get('科比'))

1.3遍历字典

使用字典对象的items()方法可以获取字典的“键值对”,其语法如下:

dictionary.items()

例如:

dictionary = {"邓肯":"石佛","科比":"黑曼巴","梭罗":"小土豆"}for item indictionary.items():print(item)

运行结果:

('邓肯', '石佛')

('科比', '黑曼巴')

('梭罗', '小土豆')

上面的例子的元组中的各个元素,如果想要获取到具体的每个键和值,可以用下面的方式:

dictionary = {"邓肯":"石佛","科比":"黑曼巴","梭罗":"小土豆"}for key,value indictionary.items():print(key,"的绰号是",value)

运行结果:

邓肯 的绰号是 石佛

科比 的绰号是 黑曼巴

梭罗 的绰号是 小土豆

1.4 添加,修改和删除字典元素

添加

dictionary = dict((("邓肯","石佛"),("科比","黑曼巴")))

dictionary['吉诺比利'] = "妖刀"

print(dictionary)

修改

dictionary = dict((("邓肯","石佛"),("科比","黑曼巴")))

dictionary['邓肯'] = "妖刀"

print(dictionary)

删除

dictionary = dict((("邓肯","石佛"),("科比","黑曼巴")))

dictionary['吉诺比利'] = "妖刀"

print(dictionary)del dictionary["邓肯"]print(dictionary)

1.5字典推导式

表现形式和列表类似。例如

importrandom

randomdict= {i:random.randint(10,100) for i in range(1,5)}print(randomdict)

2.集合

2.1 集合的创建

2.1.1直接使用“{}”创建

例如:

set1 = {'石佛','妖刀','跑车'}print(set1)

2.1.2 使用set()函数创建

例如:

set1 = set("命运给予我们的不是失望之酒,而是机会之杯")print(set1)

注意:每次运行结果都是不一样的。这是因为set集合是无序的,所以每次输出时元素排列顺序可能是不同的

2.2集合添加和删除

2.2.1向集合添加元素

使用add()方法实现。

例如:

mr = set (["零基础学java","零基础学c","零基础学php"])

mr.add("零基础学python")print(mr)

2.2.2 从集合中删除元素

mr = set (["零基础学java","零基础学c","零基础学php","零基础学python","零基础学C#"])

mr.remove("零基础学python")print(mr)

mr.pop()print(mr)

mr.clear()print(mr)

2.3集合的交集/并集和差集运算

例如:

pf = set(["邓肯","加内特","马龙"])print("大前锋位置的球员有:",pf,'\n')

cf= set(["邓肯","奥尼尔","姚明"])print("中锋位置的球员有:",cf,'\n')print("交集运算",pf &cf)print("并集运算",pf |cf)print("差集运算",pf - cf)

3.列表/元组/字典/集合的区别

数据结构

是否可变

是否重复

是否有序

定义符号

列表

可变

可重复

有序

[]

元组

不可变

可重复

有序

()

字典

可变

可重复

无序

{key:value}

集合

可变

不可重复

无序

{}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值