列表常用操作
阿新 • • 發佈:2018-05-08
pri ted int 修改 根據 remove clear 一個 enum
‘‘‘列表的方法 l.index() l.count() l.copy() l.insert() l.append() l.extend() l.pop() l.remove() l.clear() l.sort() l.reverse() ‘‘‘ l = [1, 2, ‘h‘, [3, 4, ‘H‘]] print(len(l)) l1 = l.index(‘h‘, 2, len(l)) # index(列表裏的內容,開始位置,結束為止),找到返回下標,沒找到報錯 print(1, l1) l.remove(2) # remove(列表裏的內容),有則刪除,沒有則報錯 print(l) l.clear() # 清空列表 print(l) l = [1, 2, ‘h‘, [3, 4, ‘H‘]] print(l) n = l.pop(1) # pop(列表中的下標)刪除指定下標位置元素,並給個返回值,如果不寫則默認最後一位 print(n) print(l) l.append(‘添加的元素‘) # append(任意類型)添加到列表最後,這個任意類型作為整體 print(l) l.extend([1]) # extend(可叠代的類型)添加到列表最後(合並),可叠代的得把每個字符拆開 print(l) l.extend({1: 2, 3: 4}) # extend添加字典時,添加的是字典的key print(l) l.insert(2, ‘我插入第二個位置‘) # insert(要插入的位置,要插入的元素(元素類型同append添加時) print(l) l.reverse() # reverse()翻轉列表 print(l) l2 = l.copy() # l2為深拷貝(復制粘貼同作用),l3為淺拷貝,修改l則會影響l3列表 l3 = l print(2, l2) print(3, l3) ## del l ## print(l) # 刪除不會影響淺拷貝的l3 l.clear() # 對列表l做清空處理,則l和l3會同時受到影響,但是作為深拷貝的l2不會受到影響 print(4, l2) print(5, l) print(5, l3) l4 = [2, 3, 7, 1, 9] l4.sort(reverse=False) # sort(reverse = Ture/False)升序排列原列表,參數默認為False print(l4) # 改變參數為True則會使列表從大到小排列 l5 = [2, 3, 7, 1, 9] l6 = sorted(l5, reverse=False) # 同上sort()方法,不過這是內置的方法,並不會改變原列表 print(6, l5) # sorted(列表,key,reverse = Ture/False)方法會返回一個新的列表 print(7, l6) n = l2.count(1) # 由於l在前面已經被清空了,則對深拷貝的l2進行操作 print(n) # count(列表裏的類型),如果有,則返回這個值出現的次數,如果沒有則返回0 for i in l2: print(i, end=‘ ‘) # 遍歷列表中的每個元素 print() print(4, l2) e1 = enumerate(l2) # enumerate使列表變成有序列對的元組 print(5, e1) l7 = list(e1) print(7, list(e1)) print(8, l7) # for i, y in l7: # 拆分枚舉元組中序號(下標)和字符串中對應的字符 # print(i, end=‘ ‘) # print(y) for x, y in enumerate(l2): print(x) print(y) # list4 = [1, 2, 3, ‘abc‘, ‘bcd‘] ## str4 = ‘_‘.join(list4) # 混合類型有數值 不能實現 -- 方案:列表推導式 ## print(str4) # list5 = [i for i in list4] # print(list5) # enumerate()的深入理解 l1 = [3, 1, 1, ‘添加的元素‘, [3, 4, ‘H‘], ‘我插入第二個位置‘, ‘h‘, 1] print(l1) e1 = enumerate(l1) # l2 = list(e1) # !!!!! print(e1) print(enumerate(l1)) # print(l2) print(list(e1)) # 執行l2 = list(e1)這句後,這裏就會打印個空的列表,不執行這句話的時候正常打印 print(list(enumerate(l1))) # 根據我的理解,e1是可變的,開始的l2 = list(e1)改變了e1本身的值,所以直接打印是ok的,再次在後面list()會在變上加變 # 如果開始不執行l2 = list(e1),則e1沒有被操作過,則後面list(e1)直接打印輸出不會出問題
列表常用操作