おはよう~昨天我们介绍完了四种Collections的其中两种 - List、Tuple,而今天要接续介绍另外两种 - Set、Dictionary。
Set是无序、没有索引值且没有重复的成员的容器,可以想成纪录糖果口味的清单,因为口味不能重复,所以只有唯一一个。
candyFlavor = {"apple", "strawberry", "mango", "mango"}
print(candyFlavor)
Set是用 大括号 所包围,并用 逗号 区隔每笔资料。
也可以使用set()
将产生空的Set,或将其他容器转为Set。
执行结果:
{'mango', 'apple', 'strawberry'}
这边可以注意到"mango"只有唯一一个,而且顺序每次都是随机的。
使用add(data)
在集合中新增资料。
candyFlavor.add("orange")
print(candyFlavor)
显示结果:
{'mango', 'apple', 'strawberry', 'orange'}
使用remove(data)
移除集合中的资料。
candyFlavor.remove("orange")
print(candyFlavor)
显示结果:
{'mango', 'apple', 'strawberry'}
将两个集合合并,重复的元素只会出现唯一一个,就像是你国中学的两个集合取联集这样。
newFlavor = {"apple", "banana"}
candyFlavor.update(newFlavor)
print(candyFlavor)
执行结果:
{'apple', 'banana', 'mango', 'strawberry'}
可以看的出来 "apple" 只有一个。
Set因为有不可重复的特性(使用hashtable实现),所以相当适合用於不希望有重复值的场合,像是:水果种类,人名...,可省去检查是否有重复值的成本。
Dictionary也是无序、没有索引值且没有重复的成员的容器,和Set差别在於资料以一对对的Pair所组成,Pair的语法是key: value
,一个key对应一个value,key不一定要是字串,但必须是唯一的。
也可以使用dict()
将产生空的Dictionary。
candyNumber = {"apple": 5, "strawberry": 10, "mango": 3}
简单点可以想像成纪录糖果口味以及数量的清单,key是糖果口味,value是该口味的数量。
语法是dict[key]
,利用key来存取数量。dict[key] = value
就可以改变数量。
print(candyNumber["apple"])
candyNumber["apple"] = 6
print(candyNumber)
执行结果:
5
{'apple': 6, 'strawberry': 10, 'mango': 3}
也很简单,只要给新的key就会产生新的资料。
candyNumber["banana"] = 8
print(candyNumber)
执行结果:
{'apple': 6, 'strawberry': 10, 'mango': 3, 'banana': 8}
使用pop(key)
移除该key值的资料。
candyNumber.pop("banana")
print(candyNumber)
执行结果:
{'apple': 6, 'strawberry': 10, 'mango': 3}
使用keys()
取得所有key值,回传是所有key的List。
使用values()
取得所有value值,回传是所有value的List。
使用item()
取得所有资料组,回传是由(key, value)
所组成的List。
print(candyNumber.keys())
print(candyNumber.values())
print(candyNumber.items())
执行结果:
dict_keys(['apple', 'strawberry', 'mango'])
dict_values([6, 10, 3])
dict_items([('apple', 6), ('strawberry', 10), ('mango', 3)])
Dictionary跟其他三种容器比较不同,他是复合型的资料型态,也就是由一组key对应到一个value,因此用途非常的广泛,常用於纪录两笔数值间的关系,另外,之後爬虫会提到的json格式也用到类似的格式,就先记起来吧!
Python提供四种Collections,分别是List、Tuple、Set、Dictionary,每个Collection都有各自的特色和使用时机,下面这些不用背起来,经常使用自然就会习惯了。
key: value
。今天介绍了最後两种容器 - Set和Dictionary各自的特色和使用时机,希望看完这两天的文章後能帮助你更灵活的使用容器储存资料><。
因为如果将容器塞在同一天内容会太多,拆开来内容又太少,犹豫过後还是决定拆开来讲,所以今天的篇幅比较少一点,请各位见谅OAO。
明天就要来讲流程控制和回圈了,我们明天见!
如果喜欢这系列文章麻烦帮我按Like加订阅,你的支持是我创作最大的动力~
本系列文章以及范例程序码都同步更新在GitHub上,後续会持续的更新,如果喜欢也麻烦帮我按个星星吧~
有任何问题或建议,都欢迎在底下留言区提出,还请大家多多指教。
<<: [Android Studio 30天自我挑战] RelativeLayout元件对齐方式
由下图可知 onSaveInstanceState()是当生命周期进入onStop()时会被呼叫的c...
压等行不行 本篇适用人员: 资安人员。适用法规: 资通安全责任等级分级办法。 资安法中份量最大、也是...
Colab连结 Warm-up 训练是由这篇 Paper 提出的一种方法,主要的想法是提供模型在正式...
先前的设定都是在web介面下操作与实践,但实务上 UCI(Unified Configuration...
在使用Android 手机时,满多机会因为画面的大小限制,在呈现较多资料的时候,需要一个介面可以渐次...