各位早安阿~ 不知不觉间已经来到铁人赛第十天,也就是过完1/3了呢,想想还真是快。只不过今天就开学了,希望开学後还能坚持下去每天发文?。
回想一下昨天的情况都是一个变数(Variable)对应到一个资料(Data)对吧? 但如果我们想要存的是好几笔资料呢? 这时候就要用到Collections了。Python提供四种Collections,分别是List、Tuple、Set、Dictionary,每个Collection都有各自的特色和使用时机。因为篇幅有限,今天我们先讲前两个List和Tuple:
List(列表)是一个有序、可更改、可重复的一群资料,你可以把它想像成我有一个糖果罐,你按照顺序地把一一糖果放进去,你可以随时拿取这个容器里的糖果,也可以更改容器里的糖果口味。
要如何产生一个糖果罐呢? 需要以下指令:
candyCan = ["apple", "strawberry", "grape", "mango"]
List是使用 方括号 包围住,并用 逗号 区隔每笔资料。
也可以使用list()
将产生空的List,或将其他容器转为List。
以上面的例子为例:你产生了一个糖果罐 (List),并且里面已经有四种口味的糖果 (资料) 了,分别是apple, strawberry、grape和mango。
Python很方便,只要使用 print(List名称)
就可以显示List的内容。
还记得昨天教的吗? 使用 len()
函式就可以罗。
像昨天一样使用 type()
检查,就会发现List的资料型态是一个新的形态,就叫做 <class 'list'>
。
# demo01
candyCan = ["apple", "strawberry", "grape", "mango"]
print(candyCan)
print(len(candyCan))
print(type(candyCan))
执行结果:
['apple', 'strawberry', 'grape', 'mango']
4
<class 'list'>
就如同刚才所说的,List是有序的一群资料,所以资料就像在排队一样,每个资料都有一个编号,也就是索引值。
索引值从0开始(这对写程序来说非常非常非常重要! 你想要写程序的话,就一定要先接受这个概念),所以第一个资料的索引值是0,第二个资料的索引值是1,其他依此类推。
假如我们现在想要 strawberry
,它是第二笔资料,所以它的索引值是1,那麽指令就会是:
print(candyCan[1])
执行结果:
strawberry
如果索引值是负的,则代表倒数第几个。
print(candyCan[-1])
执行结果:
mango
就像昨天 Slicing String 一样,[n:m]
表示从n取到m-1,返回一个新的List。
print(candyCan[1:3])
执行结果:
['strawberry', 'grape']
ps. 事实上,你也可以将字串想像成由字元所组成的List,方法大致上是共通的。
使用 data in list
来检查资料有没有在List中,有则回传 True
,没有则回传 False
。
print("apple" in candyCan)
print("banana" in candyCan)
执行结果:
True
False
很简单,只要将 list[index] = newDate
这样就好。
candyCan[1] = "peach"
print(candyCan)
执行结果:
['apple', 'peach', 'grape', 'mango']
使用 append()
将资料放在List最後面。
candyCan.append("banana")
print(candyCan)
执行结果:
['apple', 'strawberry', 'grape', 'mango', 'banana']
使用 insert()
将资料插入List中指定的索引值,原位置的资料会被往後移。
candyCan.insert(1, "orange")
print(candyCan)
执行结果:
['apple', 'orange', 'strawberry', 'grape', 'mango']
使用 extend()
将两个List合并在一起,就像字串的Concatenation。
newCandy = ["banana", "orange"]
candyCan.extend(newCandy)
print(candyCan)
执行结果:
['apple', 'strawberry', 'grape', 'mango', 'banana', 'orange']
List的使用时机非常的广,基本上只要你是想存放一堆资料,而且会经常更改其中的值的时候,就很适合使用List。
Tuple(元组)是一个有序、不可更改、可重复的一群资料,特性上跟List满像的,但差在Tuple不能够随意更改里面的资料。想像Tuple是一个上锁的糖果罐,只能够从糖果罐外面查看有什麽糖果,但没办法新增、更改和移除里面的糖果。
candyCan = ("apple", "strawberry", "mango", "peach", "grape")
Tuple(元组) 是使用 圆括号 包围住,并用 逗号 区隔每笔资料。
也可以使用tuple()
将产生空的Tuple,或将其他容器转为Tuple。
不能更改是什麽意思? 看一下以下的例子:
candyCan[1] = "banana"
执行後出现这个错误讯息:
Traceback (most recent call last):
File "d:\云端\Code\2021-IT-30days\Code\Day 10\demo08.py", line 3, in <module>
candyCan[1] = "banana"
TypeError: 'tuple' object does not support item assignment
Python就很明确地告诉你了,Tuple不能任意更改资料。
但还是可以查看里面有什麽资料。
print(candyCan)
print(len(candyCan))
print(candyCan[0])
print(candyCan[1:3])
执行结果:
('apple', 'strawberry', 'mango', 'peach', 'grape')
5
apple
('strawberry', 'mango')
不过基本上List大部分的函式Tuple都不能用,Tuple唯二的函式为 count()
和 index()
,count()
用来计算指定资料的数量,index()
用来寻找指定资料的索引值。
print(candyCan.count("mango"))
print(candyCan.index("mango"))
执行结果:
1
2
基本上Tuple用於传送一组资料时相当好用,因为其不可更改的特性,可以保证资料不会在传送途中被不小心更改到。
今天我们学到Python总共有四种Collections,分别是List、Tuple、Set、Dictionary,通常用於处理好几笔资料的时候,而我们今天特别讲其中两种,List和Tuple。
明天我们会学到Python剩下的两种Collections,Set和Dictionary,敬请期待~
如果喜欢这系列文章麻烦帮我按Like加订阅,你的支持是我创作最大的动力~
本系列文章以及范例程序码都同步更新在GitHub上,後续会持续的更新,如果喜欢也麻烦帮我按个星星吧~
有任何问题或建议,都欢迎在底下留言区提出,还请大家多多指教。
<<: [Day07] swift & kotlin 入门篇!(5) 基础语法-集合物件
>>: [Day 15] JavaScript 与浏览器的沟通
发想自己的需求,看看生活中有什麽是想要改进的或是解决的,再来立定一个主题吧! 目前比较烦恼的大概是:...
缘起 各位好~我是一个软件工程师,追求每年都要有不一样的进步,今年追求的是把自己的基底在打的更稳,之...
今天要来介绍的是random套件,这也是个非常实用的套件,他主要是用来在范围内随机取某一个数或资料,...
Search Console 中数百数千个数字中,若只拿一个数字给老版看的话,该看那一个,答案很简单...
我相信如果是使用微软产品的公司,大多数也都有使用Microsoft Teams作为公司内部的IM讯息...