Python自学笔记---5.集合与字典

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCow/article/details/81123771

1.集合

集合(set)是一个无序不重复元素的序列

1.1创建集合

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

s = set(['apple', 'xiaomi', 'oppo']) #创建一个字符串集合
d = set([1, 2, 3, 4, 5]) #创建一个数值集合
k = set(['h', 'e', 'l', 'l', 'o'])
z = set(['h', 'e', 'l', 'o'])
print(s)
print(d)
print(k)
print(z)

输出结果如下

{'xiaomi', 'apple', 'oppo'}
{1, 2, 3, 4, 5}
{'e', 'l', 'h', 'o'}  #可以看出集合中不能有
{'e', 'l', 'h', 'o'}

可以使用如下语法创建一个空集合或者只有一个元素的集合

t = set("hello")
d = set()

1.2集合的操作

集合支持一系列标准操作,包括并集,交集,差集和对称差集

s = set([1, 2, 3, 4, 5, 6, 7, 8])
t = set([5, 6, 7, 8, 9,10, 11, 12])
a = t | s #t和s的并集
b = t & s #t和s的交集
c = t - s #差集(项在t中,但不在s中)
d = t ^ s #对称差集(项在t或s中,但不会同时出现在二者之中)
print(a)
print(b)
print(c)
print(d)

输出结果如下:

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
{8, 5, 6, 7}
{9, 10, 11, 12}
{1, 2, 3, 4, 9, 10, 11, 12}

1.2.1添加元素

#可以使用add和update往集合中添加新项
s = set([1, 2, 3, 4, 5, 6, 7, 8])
s.add("tail") #使用add添加一项
print(s)
s.update(["frist", "second", 99])
print(s)

还有一些基本的集合操作,请看如下实验,注意看代码后面的注释(本段代码示例沿用添加元素实验中的集合 s )

s.remove(8) #删除某一项
print("移除 8 后的集合为:",s)

s.discard(6) #移除集合中的元素,且如果元素不存在,不会发生错误
print("移除 6 后的集合为:",s)

s.pop() #随机删除集合中的一个元素
print("随机删除一个元素后的集合:",s)

print("集合项的个数为", len(s))  # 使用len计算集合中有多少项

s.clear()
print("清空后的集合为:", s)

实验结果如下:

移除 8 后的集合为: {1, 2, 3, 4, 5, 6, 7, 'tail', 'second', 99, 'frist'}
移除 6 后的集合为: {1, 2, 3, 4, 5, 7, 'tail', 'second', 99, 'frist'}
随机删除一个元素后的集合: {2, 3, 4, 5, 7, 'tail', 'second', 99, 'frist'}
集合项的个数为 9
清空后的集合为: set()

2.字典

字典就是一个关联数组或散列表,其中把包含通过键(key)索引对象。在大括号中放入值即可创建字典。
字典是另一种可变容器模型,且可存储任意类型对象
格式为:d = {key1 : value1, key2 : value2 }

2.1创建字典

stock = {
        "name" : "Python",
        "shares" : 100,
        "price" : 490.10
}
name = stock["name"] #通过键索引访问对象
value =  stock["shares"] *stock["price"]

#创建一个空字典的两种方式:
prices = {}
prices = dict()

2.2字典的操作

stock["price"] = 66 #修改对象
stock["date"] = "2018-07-19" #插入一个对象

  • 字典的相关函数(len, str, type)
stock = {
        "name" : "Python",
        "shares" : 100,
        "price" : 490.10,
        "date" : "2018-07-19"
}
print("字典元素个数为:", len(stock)) #计算字典元素个数,即键的总数------len()
print("以字符串输出字典内容", str(stock)) #其本质就是print(stock)------str()
type(stock) #返回输入的变量类型,如果变量是字典就返回字典类型------type()
  • 字典的相关方法(以下内容笔者认为没有必要强记,常用的就那么几个,用的时候百度下就行,那样效率会很高)
stock.clear() #清除字典内所有元素
stock.copy()  #返回一个字典的浅复制(只拷贝一级目录,不拷贝二级目录)
stock.fromkeys(seq[, value]) #创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
stock.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值

key in stock   #如果键在字典dict里返回true,否则返回false
stock.items()  #以列表返回可遍历的(键, 值) 元组数组,例如:dict_items([('name', None), ('age', None), ('sex', None)])
stock.keys()   #以列表返回一个字典所有的键
stock.setdefault(key, default=None) #和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

stock.update(dict2) #把字典dict2的键/值对更新到stock里
stock.values() #以列表返回字典中的所有值
stock.pop(key[,default]) #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
stock.popitem() #随机返回并删除字典中的一对键和值(一般删除末尾对)

总结

  • 本节我学习了Python中的集合与字典最基本的概念,包含了如何创建集合和字典以及他们的相关操作方法
  • 在介绍字典的12种方法时,我们有像以前那样给出我的实验代码和实验结果,这个希望跟着一起学习的朋友能自己动手敲一遍,“勿以浮沙筑高楼”
  • 欢迎路过的大神指导交流

猜你喜欢

转载自blog.csdn.net/DataCow/article/details/81123771