『Python 初心者』List相關methods

針對Python中的List整理了幾個常用的methods的用法與需要注意的地方。

  • 計算List的長度與項目出現次數,其中需注意len非buit-in function
    1
    2
    3
    num_list = ['a','b','x','e','f','d','b','a']
    print('length:',len(num_list)) # length: 8
    print('count:',num_list.count('a')) # count: 2
  • 使用Extend新增物件至List中,需注意:

    • 當給予一個List作為input參數時,會逐一將新List中的物件加入到目標List中,與Append效果不同
    • Extend屬於Built-in methods,故會直接改變原有的List,而不會回傳結果
      1
      2
      3
      4
      5
      6
      7
      num_list = ['a','b','x','e','f','d']
      extend_num_list = num_list.extend(['g','r'])
      print('extend:',num_list) # extend: ['a', 'b', 'x', 'e', 'f', 'd', 'g', 'r']
      #built-in methods: change original list, won't return new list
      print('extend: append_num_list (before): ', extend_num_list) # extend: append_num_list (before): None
      extend_num_list = num_list
      print('extend: append_num_list (after): ', extend_num_list) # extend: append_num_list (after): ['a', 'b', 'x', 'e', 'f', 'd', 'g', 'r']
  • 使用Append新增物件至List中,需注意:

    • 其是用來新增一個物件,故當給予一個List時,其會直接把該List當成一個項目附加上去
    • Append屬於Built-in methods,故會直接改變原有的List,而不會回傳結果

      1
      2
      3
      4
      5
      6
      7
      num_list = ['a','b','x','e','f','d']
      append_num_list = num_list.append(['g','r'])
      print('append:',num_list) # append: ['a', 'b', 'x', 'e', 'f', 'd', ['g', 'r']]
      #built-in methods: change original list, won't return new list
      print('append: append_num_list (before): ', append_num_list) # append: append_num_list (before): None
      append_num_list = num_list
      print('append: append_num_list (after): ', append_num_list) # append: append_num_list (after): ['a', 'b', 'x', 'e', 'f', 'd', ['g', 'r']]
    • 透過pop來取得List中項目,需注意:

      • 如沒有傳入參數,則預設是回傳List最後一個item;否則,回傳指定的items
      • 使用pop會將該項目從List中移除
        1
        2
        3
        4
        5
        num_list = ['a','b','x','e','f','d']
        num_list.pop()
        print('pop:',num_list) # pop: ['a', 'b', 'x', 'e', 'f']
        pop_item = num_list.pop(1)
        print('pop:',num_list,', pop_item:',pop_item) # pop: ['a', 'x', 'e', 'f'] , pop_item: b
    • 使用remove來移除指定的value,需注意

      • 如有多個value符合,則會移除從頭數來的第一個
      • remove屬於Built-in methods,故會直接改變原有的List,而不會回傳結果
        1
        2
        3
        4
        5
        6
        num_list = ['a','b','x','e','f','d','b','a']
        new_remove_list = num_list.remove('x')
        print('remove:',num_list) # remove: ['a', 'b', 'e', 'f', 'd', 'b', 'a']
        print('remove:',new_remove_list) # remove: None
        num_list.remove('a')
        print('remove:',num_list) # remove: ['b', 'e', 'f', 'd', 'b', 'a']
    • 透過index來取得value於List出現的位置,需注意:

      • 當想要找的Item不在指定的搜尋範圍中時,其會跳出Exception,故要記得加上try…except避免程式的中斷
        1
        2
        3
        4
        5
        6
        num_list = ['a','b','x','e','f','d']
        print('index:',num_list.index('d',0,len(num_list))) # index: 5
        try:
        print('index:',num_list.index('d',0,3)) # index: exception happened: 'd' is not in list
        except Exception as e:
        print('index: exception happened:',e)
    • 使用sort()sorted()來排序List中的物件,需注意:

      • sort()為Built-in methods,故會直接影響List內的排序,且不會回傳新的List
      • sorted()為function,故不會改變原來的List,而是需要一個新的List來接收排序過後的List
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        num_list = ['a','b','x','e','f','d']
        num_list_1=num_list[:]
        sorted(num_list_1)
        print('num_list:',num_list) # num_list: ['a', 'b', 'x', 'e', 'f', 'd']
        print('num_list_1:',num_list_1) # num_list_1: ['a', 'b', 'x', 'e', 'f', 'd']
        new_num_list_1 = sorted(num_list_1)
        print('new_num_list_1:',new_num_list_1) # new_num_list_1: ['a', 'b', 'd', 'e', 'f', 'x']

        num_list_2 = num_list[:]
        num_list_2.sort()
        print('num_list:',num_list) # num_list: ['a', 'b', 'x', 'e', 'f', 'd']
        print('num_list_2:',num_list_2) # num_list_2: ['a', 'b', 'd', 'e', 'f', 'x']
        #built-in methods: change original list, won't return new list
        print('num_list_2:',num_list_2.sort()) # num_list_2: None
    • 利用join()split()來拆解string成為List與合併List成為string,需注意:

      • join()是由串接的字元來呼叫,並且傳入想要合併的List
      • split()則是由目標的List來呼叫,並且傳入拆解的字元
        1
        2
        3
        4
        5
        str_list = ['hi','my','name','is','ray']
        join_string = ' '.join(str_list)
        print('join:',join_string) # join: hi my name is ray
        split_string = join_string.split(' ')
        print(split_string) # ['hi', 'my', 'name', 'is', 'ray']
    • 使用Unpacking來指定List中各item對應的變數名稱,需注意:

      • 可以透過指標的方式來將List中連續的item指定給他,其方式可以參考下面
        1
        2
        3
        4
        5
        6
        a, b, c , *other, d = [1,2,3,4,5,6,7,8,9]
        print(a) # 1
        print(b) # 2
        print(c) # 3
        print(other) # [4, 5, 6, 7, 8]
        print(d) # 9
0%