1. 程式人生 > 實用技巧 >3. 列表型別

3. 列表型別

1. 作用

存多個值,並且是索引對應的值,按位置存放多個值

2. 定義

l = [1,1.2,'aaa',[1,2]]

3. 型別轉換

  • 但凡能夠被 for 迴圈遍歷的型別都可以當做引數傳給 list() 轉成列表
res = list('hello')
print(res)
res({'k1':111,'k2':222,'k3':333})
print(res)

4. 內建方法

4.1 按照索引取值(正向取值+反向取值)可以取也可以改

l = [111,'egon','hello']

正向取值

print(l[0])

反向取值

print(l[-1])

可以取也可以改:索引存在則不會報錯

l[1] = 222
print(l)

無論是取值操作還是賦值操作,索引不存在則報錯

l[3]=333

4.2 切片(顧頭不顧尾,步長)

l = [111,'egon','hello','a','b','c','d']
print(l[0:3])	#111,'egon','hello','a'
print(l[0:5:2])	#0 2 4

print(l[0:len(l)])
print(l[:])

new_l = l[:]	#切片等同於拷貝行為,相當於淺拷貝行為

4.3 長度

l = [111,'egon','hello']
print(len([1,2,3]))

4.4 成員運算 in 與 not in

判斷一個子字串是否存在於一個大字串中

print("alex" in "alex is sb")

True
print("alex" not in "alex is sb")

False
print(not "alex" in "alex is sb") # 不推薦使用

False

4.5 追加 append

l = [111,'egon','hello']
l.append(3333)
l.append(4444)
print(l)

4.6 插入值 insert

l = [111,'egon','hello']
l.insert(1,'alex')

4.7 在右側插入列表內的資訊

new_l = [1,2,3]
l = l = [111,'egon','hello']

#程式碼實現
for item in new_l:
	l.append(item)
print(l)

extend可以實現上述程式碼

new_l = [1,2,3]
l = l = [111,'egon','hello']
l.extend(new_l)
print(l)

help可以檢視幫助

print(help([].extend))

4.8 刪除 del,pop,remove

# 方式1:通用的刪除方法,只是單純地刪除,沒有返回值,返回None
l = [111,'egon','hello']
del l[1]
print(l)

# 方式2:l.pop()	# 根據索引刪除,有返回值,返回刪除的那個值
l = [111,'egon','hello']
l.pop()		# 不指定索引,預設刪除最後一個
res = l.pop(1)	# 會返回刪除的那個值
print(res)
print(l)

# 方式3:l.remove()	# 根據元素刪除,沒有返回值,返回None
l = [111,'egon',[1,2,3],'hello']
l.remove([1,2,3])
print(l)

4.9 迴圈

for x in [1,'aaa','bbb']:
print(x)

5. 需要掌握的操作

l = [1,'aaa','bbb']

5.1 統計某個元素出現的個數 count

l.count()		# 統計某個元素出現的次數
print(l.count('aaa'))

5.2 列印某個元素的索引 index

l.index()		# 列印某個元素的索引,找不到就會報錯
print(l.index('aaa'))

5.3 清空列表 clear

l.clear()		# 清空列表
print(l)

5.4 反轉列表 reverse

l.reverse()		# 不是排序,就是反轉列表,將列表倒過來
print(l)

5.5 升序降序 sort

l.sort()		# 排序,可以配合其他使用,預設從小到大排序(升序),要降序,可以加個reverse
l = [11,-3,9,2]		# 列表內元素必須是同種型別才可以排序
l.sort(reverse=True)	# reverse預設為False,要降序,就reverse = True
print(l)

5.6 比較大小

l = ['a','d','e']
# 瞭解:字串可以比較大小,按照對應的位置的字元一次pk
# 按照ASCII碼錶的先後順序區別字元的大小,越靠後越大

# 瞭解:列表也可以比較大小,原理同字串一樣,但是對應位置的元素必須是同種型別
l1 = [1,'abd','asd']
l2 = [10]
l3 = [1,'abd','asd']

print(l1 < l2)

6. 補充

6.1 佇列:FIFO,先進先出

入隊操作:

l = []
l.append('1')
l.append('2')
l.append('3')

print(l)

出隊操作

print(l.pop(0))
print(l.pop(0))
print(l.pop(0))

1
2
3

6.2 堆疊:LIFO,後進先出

入隊操作:

l = []
l.append('1')
l.append('2')
l.append('3')

print(l)

出隊操作

print(l.pop())
print(l.pop())
print(l.pop())

3
2
1