python6 列表

python6 列表

容器類型:

  • list 列表
  • tuple 元組
  • set 集合
  • dict 字典

list列表:

格式

空列表: moneys=[]
有內容列表: moneys = [100,80,60,10]

列表長度

len(moneys) 類似字符串

列表元素的添加

moneys = []  # 空列表
print(type(moneys))  # <class 'list'>
print(len(moneys))  # 0
	
moneys = [100, 80, 60, 10]
print(type(moneys))  # <class 'list'>
print(len(moneys))  # 4
	
names = []
names.append('張三1')
names.append('張三2')
names.append('張三3')
print(names)  # ['張三1', '張三2', '張三3']

特點

  1. 就打印來說: 先進先出 queue 隊列
  2. 列表中是允許有重複元素
  3. 列表也有下標(類似字符串)
  4. 列表元素的循環遍歷

打印

moneys = [50, 40, 100, 50, 70]
print(moneys)

支持下標

print(moneys[2])  # 100
print(moneys[-1])  # 70

使用切片

print(moneys[:2])  # [50, 50]
print(moneys[1:])  # [40, 100, 50, 70]
print(moneys[::-1])  # [70, 50, 100, 40, 50]
print(moneys[::-2])  # [70, 100, 50]

列表元素的便利

for i in moneys:
    print(i)
'''
50
40
100
50
70
'''

列表判斷

判斷列表中是否存在60元素
使用關鍵詞:in 和 not in
格式:元素 in 列表 返回值是bool類型

if 60 not in moneys:  
    print('不存在')
else:
    print('存在')

if 60 in moneys:
    print('存在')
else:
    print('不存在')

增刪改查

增加

  • append 在末尾添加元素
  • insert 在指定位置插入元素
  • extend 合併兩個列表
names = []

names.append('托兒索')
names.append('兒童劫')
names.append('小學僧')
print(names)  # ['托兒索', '兒童劫', '小學僧']

names.insert(0, '望遠燼')
print(names)  # ['望遠燼', '托兒索', '兒童劫', '小學僧']

names.insert(2, '喜之螂')
print(names)  # ['望遠燼', '托兒索', '喜之螂', '兒童劫', '小學僧']

names1 = ['小學生之手', '尿不獅']
names.extend(names1)
print(names)  # ['望遠燼', '托兒索', '喜之螂', '兒童劫', '小學僧', '小學生之手', '尿不獅']

刪除

  • pop(): 默認刪除末尾元素

  • pop(index): 指定下標位置刪除

  • remove(名字): 根據元素名稱刪除,如果不存在則報錯

  • clear(): 清空列表中的所有元素

  • 可以使用系統關鍵字實現刪除: del list[index]

print(names)  # ['望遠燼', '托兒索', '喜之螂', '兒童劫', '小學僧', '小學生之手', '尿不獅']

names.pop()
print(names)  # ['望遠燼', '托兒索', '喜之螂', '兒童劫', '小學僧', '小學生之手']

names.pop(1)
print(names)  # ['望遠燼', '喜之螂', '兒童劫', '小學僧', '小學生之手']

names.remove('小學僧')
print(names)  # ['望遠燼', '喜之螂', '兒童劫', '小學生之手']
# 裏面的元素容易引起異常 只要元素不在列表中則報錯
names.remove('尿不獅')  # ValueError: list.remove(x): x not in list

del names[3]
print(names)  # ['望遠燼', '喜之螂', '兒童劫']

names.clear()
print(names)  # []

修改

列表[index] = 新值

numbers = [4, 6, 9, 1, 5]
numbers[0] = 5  # 將新值替換原來的舊值
print(numbers)  # [5, 6, 9, 1, 5]

查找

i = 列表.index(要查找的元素) 返回值是此元素的位置

if 9 in numbers:
    # 是否存在一個方法能定義元素的位置
    index = numbers.index(9)
    print(index)  # 2

其它方法

  • count
list1 = [6, 1, 2, 9, 4, 5, 8, 5, 3, 6, 3]
# 統計列表中元素的個數
num = list1.count(3)
print(num)  # 2
  • sort
list1 = [6, 1, 2, 9, 4, 5, 8, 5, 3, 6, 3]
list1.sort()  # 默認升序
print(list1)  # [1, 2, 3, 3, 4, 5, 5, 6, 6, 8, 9]

list1.sort(reverse=True)  # 排序:降序
print(list1)  # [9, 8, 6, 6, 5, 5, 4, 3, 3, 2, 1]

系統函數

  • sum()
  • max()
  • min()
  • sorted()
# 求和
list1 = [37, 61, 99, 43, 62, 29, 2, 100, 85, 16, 65, 76, 83, 82, 35]
result = sum(list1)
print(result)  # 875

# 求平均值
avg = sum(list1) / len(list1)
print(avg)  # 58.333333333333336

# 求最大值
maxnum = max(list1)
print(maxnum)  # 100

# 求最小
minnum = min(list1)
print(minnum)  # 2

# 排序
result = sorted(list1)
print(result)  # [2, 16, 29, 35, 37, 43, 61, 62, 65, 76, 82, 83, 85, 99, 100]

result = sorted(list1, reverse=True)
print(result)  # [100, 99, 85, 83, 82, 76, 65, 62, 61, 43, 37, 35, 29, 16, 2]

print(list1)  # [37, 61, 99, 43, 62, 29, 2, 100, 85, 16, 65, 76, 83, 82, 35]
list1.sort()
print(list1)  # [2, 16, 29, 35, 37, 43, 61, 62, 65, 76, 82, 83, 85, 99, 100]

sorted(list)與list.sort()區別:

  • sorted(list)返回一個排序好的列表,原列表不變
  • list.sort()直接修改原列表,返回None

嵌套的列表

list1 = []
list1.append('admin')
list1.append(100)
list1.append(99.9)
list1.append(True)
print(list1)  # ['admin', 100, 99.9, True]

# list類型

list1.append([1, 2, 3, 4])
print(list1)  # ['admin', 100, 99.9, True, [1, 2, 3, 4]]

list2 = [[1, 2, 3], [2, 3, 4], [1, 1, 1, 6], [5, 5, 5]]
print(len(list2))  # 4

print(list2[2])  # [1, 1, 1, 6]
print(len(list2[2]))  # 4

# 求list2中所有數字的累加和
sum = 0
for i in list2:  # 因爲是雙層的列表  i 就是一個列表
    for j in i:
        sum += j
print('和:', sum)  # 和: 39
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章