python--列表list

xie仗劍天涯發表於2017-03-03

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

相關文章