可以同时储存多个资料的资料类型,可以达到用一个变数名称储存多个数值的功能
Python 内建4种容器: List, Tuple, Set, Dict,这4个容器的特性都不太一样,互相结合後可以达到不同的效果
有序,内容可重复且可以任意增加、删除、修改的容器,其中的一笔资料称为一个 元
元可以是任何型别的资料,同一个串列中的元可以是不同型别
串列就像是火车,一列火车可以拉很多节货柜,元就像是货柜,货柜装什麽都可以
有五个货物,火车就拉五节货柜
需要多载一项货物就多拉一节货柜
火车的货柜可以随时拿掉,编号会跟着变动
但不管怎麽增减、有多少货柜,它还是同一列火车
用中括号[]
或是 list()
建立空的串列
myList = []
print(myList)
或是
myList = list()
print(myList)
执行结果:
要设定串列的元,可以用逗号将数值隔开
myList = [1, 22, 345]
print(myList)
元的型别可以不同
myList = [1, '22', 0.123, False]
print(myList)
在串列变数的後方加上中括号 []
和一个数字(索引),可以取得串列中的其中一个元
myList = [1, 22, 345]
print("第一项", myList[0])
print("第二项", myList[1])
print("第三项", myList[2])
myList = [1, 22, 345]
print("倒数第一项", myList[-1])
print("倒数第二项", myList[-2])
print("倒数第三项", myList[-3])
用 Slice 可以取得多个元,语法是:
[start: stop: step]
代表从 start
开始,每 step
项取一次(预设为1可以省略),直到 stop
为止(这一项不包含)
myList = [1, 22, 25, 2, 4, 3, 3]
print(myList[1:4])
[1:4:1]
代表索引是 1, 2, 3 的元
start
, stop
可以是负数
myList = [1, 22, 25, 2, 4, 3, 3]
print(myList[-4:-1])
当 start
是0(从第一项开始)时可以省略
myList = [1, 22, 25, 2, 4, 3, 3]
print(myList[:4])
[:4]
代表索引是 0, 1, 2, 3 的元
当 stop
是 len(myList)
(取到最後一项)时可以省略
myList = [1, 22, 25, 2, 4, 3, 3]
print(myList[3:])
[3:]
代表索引是 3, 4,..., -2, -1的元
当 step
是1(全都要的时候)可以省略
当 start
, stop
都省略,但 step
不为预设值时,前面的冒号不能省略
myList = [1, 22, 25, 2, 4, 3, 3]
print(myList[::2])
[::2]
代表第一项到最後一项,每两项取一个
以下是几个常和串列一起使用的函式
回传一个整数,为串列的长度,也就是元的数量
myList = [1, 22, 345]
print(len(myList))
回传所有元的总合
myList = [1, 22, 345]
print(sum(myList))
回传串列中值最大的元
myList = [1, 22, 345]
print(max(myList))
回传串列中值最小的元
myList = [1, 22, 345]
print(min(myList))
方法类似函式,可以代表动作或是运算,但方法必须透过物件才能呼叫,且结果和目的会和物件有很大的关系,语法是:
<物件>.<方法名称>(<引数>)
将物件 obj
加入串列的最後
myList = [1, 22, 345]
myList.append(10)
print(myList)
如果用 append()
将一个串列加到另一个串列,那会变成加入一个是串列的元
list1=[1, 22, 345]
list2=[1, 2, 3]
list1.append(list2)
print(list1)
类似货柜被往上叠的概念
如果要将物件 obj
内的元加入串列,要用 extend(obj)
list1=[1, 22, 345]
list2=[1, 2, 3]
list1.extend(list2)
print(list1)
将物件 obj
插入串列索引为 i
的位置,原本在这个位置之後的元则会向後移动
myList = [1, 22, 345]
myList.insert(2, 5)
print(myList)
移除第一个和 x
相等的元,并将後方的元向前移动
myList = [1, 22, 345]
myList.remove(22)
print(myList)
移除索引为 i
的元,并 回传 元的值
预设为移除最後一笔
myList = [1, 22, 345]
a=myList.pop()
print(myList)
b=myList.pop(1)
print(myList)
print(a, b)
移除所有的元
myList = [1, 22, 345]
myList.clear()
print(myList)
将串列反转
myList = [1, 22, 345]
myList.reverse()
print(myList)
将串列的元由值的大小排列,预设由小到大排列,当 reverse
为 True
时由大到小
myList = [1, 22, 345, 55, 43]
myList.sort()
print(myList)
myList.sort(reverse=True)
print(myList)
回传串列中有几个值为 x
的元
myList = [1, 22, 22, 22, 4, 3, 3]
print(myList.count(0))
print(myList.count(3))
print(myList.count(22))
如果先建立一个 list1
,再把 list1
指派给 list2
,会发现两个变数的资料是一起变动的,也就是说这个串列变成有两个名字
list1 = [1, 2, 5, 7, 8]
list2 = list1
list2.append(2)
print(list1, list2)
list1.remove(5)
print(list1, list2)
对 list1
用 remove()
将2移除,list2
的2也跟着不见,所以两个变数代表的是同样的资料
如果要达到复制的效果有两种方法:
extend()
把 list1
的元加到 list2
list1 = [1, 2, 5, 7, 8]
list2 = [].extend(list1)
list2.append(2)
print(list1, list2)
list1.remove(5)
print(list1, list2)
list2
指派为 list1.copy()
list1 = [1, 2, 5, 7, 8]
list2 =list1.copy()
list2.append(2)
print(list1, list2)
list1.remove(5)
print(list1, list2)
对 list1
用 remove()
将2移除,list2
的2没有不见,所以两个变数代表的是不同的资料
挖坑清单:
<<: 30天学会C语言: Day 4-输入个资料怎麽那麽麻烦啦
>>: Day 0xA - WebHook Api 建立( part 2 )
简说重构 何时、为何重构 重构难题 重构策略 ...
今天就来继续做网站元件的介绍,在电商网站中常需要使用到下拉式选单,像是在做商品尺寸的选择、颜色的选择...
延续昨日 今天我们来处理一下新增帐户的照片 这是我们目前的修改帐户页面 首先先把layout做出来 ...
颗粒可视为测量单元。当我们说我们的软件被测试了50%,或者测试覆盖率是50%,这到底是什麽意思,因为...
线上范例:JIT 线上范例 - Tailwind Play 因为 Tailwind CSS 的设计...