Python学习--Task06:字典与集合

字典

1、创建并访问字典

字典是另一种可变容器模型,且可存储任意类型对象。
创建字典的一般格式:

d = {key1 : value1, key2 : value2 }

实例:

dict1={"李宁":"一切皆有可能","耐克":"Just do it","阿迪达斯":"Impossible is nothing"}
print("李宁的口号是:",dict1["李宁"])
dict2={1:"one",2:"two",3:"three"}
print(dict2[2])
dict3={}
print(dict3)#创建空字典

注:

  • 大括号;
  • 键与对应的值用冒号隔开;
  • 键必须是唯一的,但值则不必;
  • 调用时要知道关键词,且中括号。

采用dict()创建字典:

dict4=dict(((1,"one"),(2,"two"),(3,"three")))
print(dict4)

dict5=dict( a="one",b="two",c="three")#关键字不能加引号
print(dict5)

dict5["a"]="four"#改变字典中某项的值
print(dict5)

dict5["e"]="five"#向字典中增加项
print(dict5)

2、字典的内置方法

函数描述
fromkeys()创建一个新字典,以序列中元素做字典的键,val为字典所有键对应的初始值
get(key, default=None)返回指定键的值,如果值不在字典中返回default值
clear()删除字典内所有元素
copy()返回一个字典的浅复制(浅复制和直接赋值不同,浅复制改变字典id)
pop(key,default)删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。
popitem随机返回并删除字典中的最后一对键和值。
radiansdict.update(dict2)把字典dict2的键/值对更新到dict里

实例:

  1. fromkeys()
dict1={}
print(dict1.fromkeys((1,2,3),"number"))
print(dict1.fromkeys((1,2,3),("one","two","three")))
#第二个小括号的值当做一个整体,即{1:("one","two","three")...}

dict2=dict1.fromkeys(range(32),"赞")
print(dict2)

#key,value,item
for eachkey in dict2.keys():
    print(eachkey)#打印关键字0,1,2...31
for eachvalue in dict2.values():
    print(eachvalue)#打印值 赞...
for eachitem in dict2.items():
    print(eachitem)#打印字典的每一项
 
 #print(dict2[32])会报错
print(dict2.get(32))#采用get()会输出None
print(dict2.get(32),"木有")#get()可以设置输出的值
  1. pop()和popitem()
dict1={1:"one",2:"two",3:"three"}
print(dict1.pop(2))
print(dict1)

print(dict1.popitem())
print(dict1)

输出:

two
{1: 'one', 3: 'three'}
(3, 'three')
{1: 'one'}

集合

  • 集合(set)是一个无序的不重复元素序列;
  • 元素无序,所以不支持索引;
  • 可以用花括号括起一堆元素的方式,或set()函数创建集合。

1、创建集合

set1=set([1,2,3,4,5])
print(set1)
#去除掉列表中重复的元素
set2=set([0,1,2,3,4,5,5,3,1])
print(set2)#得到的集合是无序的!

2、访问集合中的值

  • 使用for把集合中的数据一个一个读取出来;

  • 通过in,not in判断元素是否在集合中;

  • add()可以向集合中添加元素,remove()可以移除集合中的元素。

3、不可变集合

set=frozenset([1,2,3])
print(set)
#print(set.add(5))#报错

参考文献

https://www.runoob.com/python3/python3-set.html
https://www.bilibili.com/video/av4050443/?p=28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值