Python學習---Python下列表的學習

來源:互聯網
上載者:User

標籤:for   java   列表   就是   move   第一個   inline   練習   間隔   

列表[list]用中括弧[]表示,處理一組有序項目的資料結構,列表的類型是可變的資料類型,類型是list

列表是可變/線程不安全的

# type(a) = list  利用type判斷元素離線

# 切片是左閉右開[m,n)的

# 取得方向由第三個參數的正負決定,不變的還是原來列表的下標

# -1代表最後一個元素

# ::代表到最後

#列表時可變的

#可以利用id查看列表在記憶體中的儲存位置

列表的建立+查詢

列表的查:切片,index, count

# list = [‘hello‘, ‘world‘, ‘2017‘]  會有警示,因為list是關鍵字name = [‘hello‘, ‘world‘, ‘2017‘, ‘hhh‘, ‘ftl‘]# print(id(name))# 切片是左閉右開的形式,左右只是取的方向而已,不變的還是列表下標# 列印所有元素#print("列印所有元素:", name)print("列印所有元素:", name[0:name.__len__()])print("列印所有元素(預設到最後):", name[0:])# 列印第一個print("列印第一個: ", name[0])# 取出後面2個print("取出後面2個: ", name[3:5])# 取出world後面的所有元素,預設取到最後一個print("取出world後面的所有元素: ", name[1:])# -1代表最後一個元素print("-1代表最後一個元素: ", name[-1])# 去除最後一個元素print("去除最後一個元素:", name[0:-1])# 雖然超出了最大範圍,但是預設是取到最後一個元素print("超出了最大範圍,但預設取到最後一個元素:", name[1:10])# 間隔一個取一個元素(預設間隔是1,就是每一個元素都取到)print("間隔一個取一個元素(預設間隔是1,就是每一個元素都取到):", name[0::2])# 從右向左取值,取出全部元素print("從右向左取值name[-1::-1],取出全部元素:", name[-1::-1])# 注意:如果用到了0下標,則會少一個值print("從右向左取值name[-1:0:-1],取出全部元素:", name[-1:0:-1])# 從右向左取值(間隔一個取一個)print("從右向左取值,間隔一個取一個:", name[-1::-2])# 只列印 hhh,worldprint("只列印 hhh,world:[3::-2]",  name[3::-2])print("只列印 hhh,world:[-2::-2]", name[-2::-2])# 預設是+1的方向print("預設是+1的方向:", name[-2::])

count 方法統計某個元素在列表中出現的次數

name = [‘a‘, ‘b‘, ‘c‘, ‘a‘]print(name.count(‘a‘))          --> 2

index:  根據元素內容返回元素所在的位置,如果有2個相同的元素,以第一個為準

name = [‘z‘, ‘a‘, ‘b‘, ‘c‘, ‘a‘]print(‘a的第一個位置是:‘, name.index(‘a‘))        # -->1# 強製取出第二個a的位置print(name[name.index(‘a‘)+1::].index(‘a‘) + name.index(‘a‘)+1)

嵌套的列表練習

boy = [[‘ftl‘, 12, ‘male‘], [‘hhh‘, 13, ‘female‘], [‘pig‘, 0, ‘unknow‘]]print("info of HHH: ", boy[1])print("age of HHH: ", boy[1][1])

for迴圈的特殊列印

te = [[‘Shell‘, 150], [‘Python‘, 600], [‘Mysql‘, 200], [‘Oracle‘, 400]]print("整體列印1:", te)print("整體列印2(用迴圈):")for i in te:    print(i)print(‘te的大小:‘, len(te))print("[k,v]的使用:")for i, v in te:    print(i, v)

利用list類來建立列表: 可以看出跟使用小括弧,中括弧還是大括弧關係不大,構造出來的都是列表

name = list([1, 2, 3, 4, 5, 6])print(name)name2 = list((7, 8, 9, 10, 11, 12))print(name2)name3 = list({13, 14, 15, 16, 17, 18})print(name3)

利用清單產生器來產生列表,也可以放置函數進行操作

# 清單產生器

a = [ x*2 for x in range(10)]  # 找出X並且對X進行操作print(a)               # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

# 在函數內操作

def plus(x):    return x ** 3# b = [plus(x) for x in [1, 3, 5]]   是個序列就好b = [plus(x) for x in range(10)]print(b)                # [0, 1, 8, 27, 64, 125, 216, 343, 512, 729]

列表的特殊賦值:注意元素的個數和列表裡面的數量相同

c = [‘hello‘, ‘world‘]x,y = cprint(x, y)      # hello world

 

列表的增加:append,insert,extend

append預設是插入到列表尾部,修改的是索引值

# list = [‘hello‘, ‘world‘, ‘2017‘]  會有警示,因為list是關鍵字name = [‘hello‘, ‘world‘, ‘2017‘, ‘hhh‘, ‘ftl‘]print(‘--------------------------------------------------------------------------------‘)print("Append修改前:", name[0:])# append預設是插入到列表尾部name.append(‘python‘)print("Append修改後:", name[0:])print(‘--------------------------------------------------------------------------------‘)print("Insert修改前:", name[0:])# 修改的是索引值name.insert(0, "Java")print("Insert修改後:", name[0:])print(‘--------------------------------------------------------------------------------‘)

extend 方法可以在列表的末尾一次性追加另一個序列中的多個值。

extend 方法修改了被擴充的列表,而原始的串連操作(+)會返回一個全新的列表, 且不影響原來的列表。

name = [‘a‘, ‘b‘, ‘c‘]name2 = [‘e‘, ‘f‘, ‘g‘]name2.extend(name)print("name :", name)print("name2.extend(name):", name2)name3 = [‘x‘, ‘y‘, ‘z‘]print("name + name3:", name + name3)

列表的修改:

同時修改多個元素,需要用列表來再次賦值

# list = [‘hello‘, ‘world‘, ‘2017‘]  會有警示,因為list是關鍵字name = [‘hello‘, ‘world‘, ‘2017‘, ‘hhh‘, ‘ftl‘]# 修改2017為2018print("修改前:", name[0:])name[2] = ‘2018‘print("修改後:", name[0:])print(‘--------------------------------------------------------------------------------‘)# 修改hello world 為 Java Pythonprint("修改前:", name[0:])name[0:2]=[‘Java‘, ‘Python‘]print("修改後:", name[0:])
 

特殊情況:如果替換和被替換的數量對不上,就會刪除那個位置的元素

name = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]#name[1:4]  ==> b c dprint(name)name[1:4] = [‘B‘, ‘C‘]print(name)
 

列表的刪除:remove pop  del

     remove刪除的是元素,不是下標

     pop   刪除的是下標,而且會返回刪除的元素,什麼都不寫預設刪除最後一個值

     del   是一個函數,既可以刪除某個元素,也可以刪除list對象

     clear  清空,但是還是保留原來的列表屬性

Remove:

# list = [‘hello‘, ‘world‘, ‘2017‘]  會有警示,因為list是關鍵字name = [‘hello‘, ‘world‘, ‘2017‘, ‘hhh‘, ‘ftl‘]# 刪除2017print("修改前:", name[0:])# remove的是元素,不是下標# name.remove(1)  --> ValueError: list.remove(x): x not in listname.remove(‘2017‘)# name.remove(name[2])  -->效果相同,相當於用列表取出元素後刪除print("修改後:", name[0:])

Pop: 刪除下標,而且可以拿到刪除後的內容

# list = [‘hello‘, ‘world‘, ‘2017‘]  會有警示,因為list是關鍵字name = [‘hello‘, ‘world‘, ‘2017‘, ‘hhh‘, ‘ftl‘]# 刪除2017print("修改前:", name[0:])year=name.pop(2)print("修改後:", name[0:])print("year:", year)#特殊:預設刪除最後一個元素name.pop()print(name)

Del: 是一個函數,既可以刪除某個元素,也可以刪除list對象

# list = [‘hello‘, ‘world‘, ‘2017‘]  會有警示,因為list是關鍵字name = [‘hello‘, ‘world‘, ‘2017‘, ‘hhh‘, ‘ftl‘]# 刪除2017print("修改前:", name[0:])del name[2]print("修改後:", name[0:])# 刪除name對象del nameprint("刪除name對象後:", name[0:])

其他

reverse 方法將列表中的元素反向存放

name = [‘a‘, ‘b‘, ‘c‘]name.reverse()print(name)

sort 方法用於在原位置對列表進行排序,預設升序

name = [‘z‘, ‘a‘, ‘b‘, ‘c‘, ‘a‘]name.sort()print(name)name.sort(reverse=True)print(name)

Python學習---Python下列表的學習

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.