Python 列表操作

#列表可以一次性存儲多個數據,且可以爲不同的數據類型
#可以對這些數據進行 增/刪/改/查
#1.查找
#1.1可以按下標查找
name_list = ['Jack', 'Pony', 'White']
print(name_list)       #輸出 ['Jack', 'Pony', 'White']
print(name_list[0])    #輸出 Jack
print(name_list[1])    #輸出 Pony

#1.2 index() : 返回指定數據所在位置的下標
#語法:列表序列.index(數據, 開始位置下標, 結束位置下標)
# 這裏有一個注意點,結束位置下標不包含在查找的範圍內,比如0~2,不查找下標爲2的內容,如果要查找2,則範圍要0 - 3
print(name_list.index('Jack', 0, 3))  #輸出 0
print(name_list.index('White', 0, 3)) #輸出 2
#print(name_list.index('Black', 0, 3)) #報錯 ValueError: 'Black' is not in list

#1.3 count() : 統計指定數據在當前列表中出現的次數
print(name_list.count('Jack')) # 返回1
print(name_list.count('Black'))  #返回 0

#1.4 len() : 訪問列表長度, 即列表中數據的個數,是公共函數,在元組,字典中都可以使用這個函數
print(len(name_list)) #返回 3

#2. 判斷是否存在
# 應用場景1 判斷註冊的賬號是否已經註冊過
#2.1 in : 判斷指定數據在某個列表序列,如果在返回True, 否則返回False
print('White' in name_list) # 返回 True
print('Black' in name_list) # 返回 False
#2.2 not in : 判斷指定數據不在某個列表序列中
print('White' not in name_list) # 返回 False
print('Black' not in name_list) # 返回 True
#in    not in 小體驗
name_list = ['Tom', 'Jack', 'Jone']
use_name = input('請輸入用戶名:')
if use_name in name_list:
    print('輸入的用戶名已存在,請重新輸入')
else:
    print('輸入的用戶名不存在,可以註冊')
name_list = ['Jack', 'Pony', 'White']
#3. 增加指定數據到列表中
#3.1 append() : 列表結尾追加數據
# 語法 : 列表序列.append(數據)
name_list.append('Black')
print(name_list) # 輸出 ['Jack', 'Pony', 'White', 'Black']
name_list.append([11, 22])
print(name_list) # 輸出 ['Jack', 'Pony', 'White', 'Black', [11, 22]]
#結論 : a.列表數據可改 -- 列表是可變類型
#       b.append函數追加數據,如果是一個序列,追加整個序列到列表的結尾

#3.2 extend() : 列表結尾追加數據, 如果數據是一個序列,則將這個序列的數據逐一添加到列表。
#語法 : 列表序列.extend(數據)
name_list.extend('Lucy')
print(name_list) #輸出 ['Jack', 'Pony', 'White', 'Black', [11, 22], 'L', 'u', 'c', 'y']
name_list.extend(['Lily', 'Brain'])
print(name_list) #輸出 ['Jack', 'Pony', 'White', 'Black', [11, 22], 'L', 'u', 'c', 'y', 'Lily', 'Brain']

#3.3 insert() : 指定位置新增數據
#語法 : 列表序列.insert(位置下標, 數據)
name_list.insert(1, 'Hello')
print(name_list) #輸出 ['Jack', 'Hello', 'Pony', 'White', 'Black', [11, 22], 'L', 'u', 'c', 'y', 'Lily', 'Brain']

============================================

name_list = ['Jack', 'Pony', 'White']
#4. 刪除
#4.1 del
#語法 : del 目標 或者 del(目標)
'''
del name_list
print(name_list) #報錯,NameError: name 'name_list' is not defined 因爲del name_list將name_list刪掉了

del name_list[0]
print(name_list) #輸出 ['Pony', 'White']
'''
#4.2 pop()
#刪除指定下標的數據,如果不指定下標,則刪除最後一個數據,並且返回這個被刪除的數據
'''
del_name = name_list.pop()
print(del_name)   #輸出 White
print(name_list)  #輸出 ['Jack', 'Pony']

del_name = name_list.pop(1)
print(del_name)  #輸出 Pony
print(name_list) #輸出 ['Jack', 'White']
'''
#4.3 remove(數據)
'''
name_list.remove('Jack')
print(name_list) #輸出 ['Pony', 'White']
'''
#4.4 clear() -- 清空列表
name_list.clear()
print(name_list) #輸出 [] 

=====================================

name_list = ['Jack', 'Pony', 'White']
#5.修改
#5.1 使用下標進行修改
name_list[0] = 'Jacy'
print(name_list) #輸出 ['Jacy', 'Pony', 'White']

#5.2 reverse() 逆序
name_list.reverse()
print(name_list) #輸出 ['White', 'Pony', 'Jacy']

#5.3 sort() 排序, 升序 或者 降序
#語法 : 列表序列.sort(key = None, reverse = False)
#key : 當列表裏面有字典的時候,要用到這個key
#reverse表示排序規則 = True 降序, reverse = False 升序(默認)
list1 = [2, 1, 5, 4, 3, 6]
list1.sort(reverse = False) #輸出 [1, 2, 3, 4, 5, 6]
print(list1)
list1.sort(reverse = True) #輸出 [6, 5, 4, 3, 2, 1]
print(list1)

=====================================================

name_list = ['Jack', 'Pony', 'White']
#6.列表的複製
#6.1 copy() 原始的數據保留,複製一份出來進行操作
name_list1 = name_list.copy()
print(name_list)  #輸出 ['Jack', 'Pony', 'White']
print(name_list1) #輸出 ['Jack', 'Pony', 'White']

=======================================================

#7列表循環遍歷
#遍歷 : 按順序依次訪問每一個數據
#7.1.while循環遍歷列表
'''
name_list = ['Jack', 'Pony', 'White']
i = 0
while i < len(name_list):
    print(name_list[i])
    i += 1

輸出
Jack
Pony
White
'''
#7.2 for循環遍歷列表
name_list = ['Jack', 'Pony', 'White']
for i in name_list:
    print(i)

'''
輸出
Jack
Pony
White
'''

===========================================================

#8.列表的嵌套
#所謂列表的嵌套,就是之一個列表裏面包含了其他的子列表
#比如,三個組,每個組裏的成員姓名放在一個子列表裏
name_list = [['Jack', 'Pony', 'Jone'], ['Lucy', 'Lily', 'Ayma'], ['Willon', 'White']]
print(name_list)
#print(name_list.index('Jack')) #報錯 ValueError: 'Jack' is not in list
print(name_list[0].index('Jack')) #輸出 0

============================================================

#8個成員隨機分到三組
#from random import *
import random
members_names = ['Jack', 'Jone', 'Pony', 'Peter', 'Robet', 'Arm', 'White', 'Lucy']
groups = [[], [], []]
for name in members_names:
    num = random.randint(0, 2)
    groups[num].append(name)

print(groups)
i = 1
for group in groups:
    print(f'第{i}組有{len(group)}個組員,每個組員的姓名是 : ')
    for name in group:
        print(name)
    i += 1

 

發佈了59 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章