1. 程式人生 > >列表常用操作

列表常用操作

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)直接打印輸出不會出問題

  

列表常用操作