list是處理一組有序專案的資料結構,即你可以在一個列表中儲存一個 序列 的專案
列表中的專案應該包括在方括號中,這樣Python就知道你是在指明一個列表。一旦你建立了一個列表,你可以新增、刪除或是搜尋列表中的專案。
由於你可以增加或刪除專案,我們說列表是 可變的 資料型別,即這種型別是可以被改變的。
通用序列操作
通用的序列操作包括:索引(indexing),分片(sliceing),加(adding),乘(multiplying)以及檢查某個元素是否屬於序列的成員。另還有計算序列長度,找出最大元素,最小函式的內建函式
1. 索引
序列中所有元素都有編號--從0開始遞增。
indexing = "HelloWelcomeToPython!"
print (indexing[0])
print (indexing[8])
print (indexing[-1])
注:使用負數索引,python會從右邊開始計算。最後一個元素的位置編號是-1
2. 分片
使用分片操作來訪問一定範圍的元素,分片通過冒號相隔的兩個索引來實現
numbers = [1,2,2,3,4,5,66,777,8,222,10,101]
print (numbers[3:6]) # 獲取第4個到第6個元素
print (numbers[-3:]) # 獲取最好三個元素
print (numbers[:3]) # 獲取前三個元素
print (numbers[0:10:2]) # 步長為2分片
print (numbers[::4]) # 步長為4分片
print (numbers[::-1]) # 從右到左提取元素
序列相加
a = [1,2,3,4,5]
b = [6,7,8,9,10]
print (a + b)
注:列表不能與字串相加。即兩個相同型別的序列才能進行連線操作
序列相乘
用數字X乘以一個序列會生成一個新的序列。原序列會被重複X次
X = "ILovePython~"
print (X*10)
XX = [111]
print (XX*10)
注:None 是python的內建值,意味著裡面沒有任何元素(空值)
成員資格
檢查一個值是否在序列中,使用in運算子。條件為真,返回值為True,條件為假,返回值為False.
numb = [12,34,54,232,111,3333]
print (12 in numb)
print (123 in numb)
例子:登入帳號認證
database =[ ["xiaohong","123456"],["xiaoming","111111"],["zhangsan","123344"],["lisi","121212"]]
username = input("please input your name:")
password = input("please your password:")
if [username,password] in database:
print ("welcome to login")
else:
print ("You do not have permission to log on")
長度、最大值、最小值
內建函式len、min、max 分別返回列表的長度、最小值、最大值
lis = [1,22,333,4444,55555,666666,7777777,88888888]
print (len(lis))
print (min(lis))
print (max(lis))
列表的基本操作
1. 改變列表(修改列表的元素,賦值實現)
x = [1, 2, 3, 4, 5, 6 ,7, 8]
print (x)
x[3] = 444 # 將第四個元素修改為 444
print (x)
2. 刪除元素 (使用del 語句)
animals = ["Deer", "Tiger", "Monkey", "Dog", "Pig", "Snake"]
print (animals)
del animals[2] # 刪除第三個元素
print (animals)
3. 分片賦值
name = list("xieshengsen")
print (name)
name[8:] = list("SEN") # 修改多個元素值,並分片顯示
print (name)
4. append 用於在列表末尾追加新的物件
fruits = ["peach", "pear", "banana", "watermelon"]
print (fruits)
fruits.append("orange") # 在水果列表末尾添上 "orange"
print (fruits)
5. count 統計某元素在列表中出現的次數
numbers = [1 , 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]
print ("1 出現次數:",numbers.count(1))
print ("2 出現次數:",numbers.count(2))
print ("3 出現次數:",numbers.count(3))
print ("4 出現次數:",numbers.count(4))
print ("5 出現次數:",numbers.count(5))
print ("6 出現次數:",numbers.count(6))
6. extend 在列表的末尾一次性新增另一個序列的多個值
a = [1, 2, 3, 4, 5]
b = [66, 77, 88, 99]
a.extend(b)
print (a)
print (b)
7. index 用於從列表中找出某個值第一個匹配項的索引位置
Jobs = ["He", "said", "this", "would", "prevent", "companies", "from", "creating", "new", "jobs"]
print (Jobs.index("this"))
print (Jobs[2])
8. insert 用於將物件插入到列表
numbs = [1, 2 ,3, 4, 5, 6 ,7]
print (numbs)
numbs.insert(5, "four")
print (numbs)
9. pop 移除列表中一個元素(預設是最後一個)
y = [1 ,2, 3, 4, 5, 6, 7, 8]
y1 = y.pop() # 預設移除最後一個函式
print (y1) #
print (y)
y2 = y.pop(1) # 移除第二個函式
print (y2)
print (y)
10. remove 移除列表中某個值的第一個匹配項
QAZ = ["qq", "ww", "ee", "rr", "aa", "ss"]
QAZ.remove("ww")
print (QAZ)
注:remove 是一個沒有返回值的原位置改變方法。修改列表後沒有返回值,與pop方法相反。
11. reverse 將列表中的元素反向存放
A = [1, 2, 3, 4, 5]
A.reverse()
print (A)
12. sort 用於將原位置的列表進行排序。
num = [3 , 4, 2, 1, 7, 6, 9, 8]
num.sort()
print (num)
letter = ["b", "d", "a", "c", "f", "e", "g"]
letter.sort()
print(letter)
sort 方法有另外兩個可選的引數:key 和 reverse.
AAA = ["BB","DDDD","A","EEEEE","CCC"]
AAA.sort(key=len)
print (AAA)
BBB = [3, 5, 10, 8, 1, 4, 7]
BBB.sort(reverse=True) # 當reverse=false 列表相反排列
print(BBB)
list 官方文件常用解析
class list(object):
"""
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
"""
def append(self, p_object): # real signature unknown; restored from __doc__
""" L.append(object) -- append object to end """
pass
def count(self, value): # real signature unknown; restored from __doc__
""" L.count(value) -> integer -- return number of occurrences of value """
return 0
def extend(self, iterable): # real signature unknown; restored from __doc__
""" L.extend(iterable) -- extend list by appending elements from the iterable """
pass
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
"""
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
"""
return 0
def insert(self, index, p_object): # real signature unknown; restored from __doc__
""" L.insert(index, object) -- insert object before index """
pass
def pop(self, index=None): # real signature unknown; restored from __doc__
"""
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
"""
pass
def remove(self, value): # real signature unknown; restored from __doc__
"""
L.remove(value) -- remove first occurrence of value.
Raises ValueError if the value is not present.
"""
pass
def reverse(self): # real signature unknown; restored from __doc__
""" L.reverse() -- reverse *IN PLACE* """
pass
def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__
"""
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1
"""
pass