Python基礎 04----列表
文章目錄
列表的使用
格式為 [元素1, 元素2, 元素3, …]
# 多個資料需要按照一定順序要儲存的時候,可以考慮用列表
# [] 表示一個列表
names = ['張三', '李四', '王五']
# 使用list 內建類 list(可迭代物件)
# 例如
# a = list(('張三', '李四', '王五'))
# print(a)
# 和字串一樣,可以使用下標來獲取列表裡面的元素
# 可以使用下標來修改 列表裡面的元素
# 列表是可修改的
print(names[2])
names[2] = 'jack'
print(names[2])
# 使用下標來進行切片
print(names[1:2])
列表的增刪改查
列表的操作,有序 可變的
增加 刪除 修改 查詢
增刪改查
append 把新元素新增到列表的末尾
hero = ['李白', '韓信', '後裔', '李元芳']
# 新增元素的方法
# append insert extend
# append 在列表的最後面追加一個資料
hero.append('趙雲')
print(hero)
insert 在指定位置 index前插入元素object
# insert(index, object) 需要兩個引數
# index 表示下標,在那個位置插入資料
# object 表示插入的資料
hero.insert(2, '王昭君')
print(hero)
extend 將另一個列表逐一新增到列表中
# extend(iterable) 需要一個可迭代物件
# a.extend(b) 把b新增到a裡面 b不變
a = ['馬克菠蘿', '狄仁傑']
hero.extend(a)
print(hero)
print(a)
刪除資料的方法 pop remove clear
masters = ['王昭君', '妲己', '小喬', '貂蟬', '西施']
# 刪除 修改 查詢
# 刪除資料的方法 pop remove clear
# pop 預設會刪除列表的最後一個資料,並且返回資料
# pop(index) 傳入索引 index 用來刪除指定位置上的資料
# x = masters.pop(2)
# print(x)
# print(masters)
# remove 如果資料在列表中不存在 會報錯
masters.remove('王昭君')
print(masters)
# clear 用來清空一個列表
masters.clear()
print(masters)
# 使用 del 也可以刪除
tanks = ['亞瑟', '程咬金', '盾山', '張飛', '廉頗','廉頗']
# 查詢相關的方法 index 元素不存在報錯
print(tanks.index('盾山'))
# print(tanks.index('莊周'))
print(tanks.count('廉頗'))
# in 運算子
print('莊周' in tanks)
# 修改元素
# 使用下標直接修改列表的元素
排序(sort, reverse)
nums = [6, 5, 8, 7, 3, 1, 2, 4]
# 排序和反轉
# 呼叫列表的sort方法直接進行排序
# 直接對列表進行排序
# nums.sort()
nums.sort(reverse=True) # 反轉
print(nums)
# sorted 不對原有列表進行改變,生成一個新的原有資料
a = sorted(nums)
print(a)
# 使用內建函式 reverse
name = ['李四', '王五', '張三']
name.reverse()
print(name)
# 使用切片[::-1]
c = name[::-1]
print(c)
列表的遍歷
使用while/for in
# 將所有的資料訪問一邊 遍歷針對的是 可迭代物件
# while / for in
killers = ['李白', '蘭陵王', '韓信', '孫悟空', '趙雲']
# for...in 迴圈是不斷的呼叫迭代器 next查詢下一個資料
for k in killers:
print(k)
i = 0
while i < len(killers):
print(killers[i])
i += 1
列表的巢狀
關鍵: 操作巢狀列表,只要把要操作的元素的下標當作變數名來使用即可
import random
teachers = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
rooms = [[], [], []]
for teacher in teachers:
room = random.choice(rooms)
room.append(teacher)
print(rooms)
列表的推導式
關鍵點:使用簡單的語法建立列表
# 使用簡單的語法建立列表
# nums = [i for i in range(10)]
# print(nums)
#
# # 取所有的偶數
# x = [i for i in range(10) if i % 2 == 0]
# print(x)
# points = [(x,y) for x in range(10) for y in range(10)]
# print(points)
# 生成1到100的數字
m = [i for i in range(1, 101)]
n = [m[j: j + 3] for j in range(0, 100,3)]
print(m)
print(n)
列表的複製
列表裡的copy方法
本質上是將原來的列表進行復制,變成新的列表(淺複製),修改新列表的資料並不會影響到原來的資料
import copy
x = [100, 200, 300]
y = x # x賦值給y,這個時候x,y指向同一個記憶體地址
# 使用記憶體空間不一樣的 使用 copy 內容一樣,指向的空間不一樣
z = x.copy()
print(z)
print(id(x))
'''
[100, 200, 300]
2516632011136
2516630953344
'''
print(id(z))
# 使用Python的方法
a = copy.copy(x) # 相當於淺拷貝
b = x.copy()
print(a)
print(b)
copy模組的使用
淺拷貝:對一個物件的頂層拷貝,本質上是拷貝了引用,沒有拷貝內容
淺拷貝只會拷貝最外層的物件,裡面的資料不會拷貝,而是直接指向
import copy
words = ['hello', 'happy', 'hey', [100, 200, 300], 'hi']
# 淺拷貝 淺拷貝認為只拷貝了一層
words1 = words.copy()
print(words1)
# 深拷貝
words2 = copy.deepcopy(words)
print(words2)
深拷貝:深拷貝是對於一個物件所有層次的遞迴拷貝
相關文章
- Python列表基礎Python
- Python 基礎 2 - 列表Python
- Python基礎(03):列表Python
- python基礎(三)——操作列表Python
- Python基礎-列表及列表解析小結Python
- python list列表基礎(元組)Python
- Python基礎學習3——列表Python
- python基礎之元組,列表Python
- python基礎之列表解析Python
- python基礎之列表拷貝Python
- Python基礎-列表操作(2):列表的遍歷和數字列表Python
- Python基礎——while、字串、列表及操作PythonWhile字串
- Python - 基礎資料型別 list 列表Python資料型別
- Python基礎之:數字字串和列表Python字串
- python基礎之列表list元組tuplePython
- python基礎(四)----列表、字典練習題Python
- 【Python】pyhon基礎知識之---列表/元祖/字典Python
- 豬行天下之Python基礎——3.2 列表 & 元組Python
- 【編測編學】零基礎學python_09_列表(操作列表之遍歷列表)Python
- Python 基礎 2-3 列表的反轉與排序Python排序
- 列表、元組、字串是有序序列嗎?Python基礎教程字串Python
- Python零基礎學習筆記(十五)——list(列表)Python筆記
- Python基礎:資料型別-列表與元組(6)Python資料型別
- python基礎語法迴圈巢狀和列表(一)Python巢狀
- python基礎語法迴圈巢狀和列表(二)Python巢狀
- python基礎之序列型別的方法——列表&元組Python型別
- Python基礎之列表相關知識-day5Python
- Python基礎型別 - 列表型別的所有方法Python型別
- 【編測編學】零基礎學python_10_列表(建立數值列表 )Python
- 【編測編學】零基礎學python_06_列表(認識和使用列表)Python
- react基礎之-- 列表迴圈React
- Python基礎篇-Python基礎01Python
- 《Python基礎教程第二版》第二章-Python列表和元祖Python
- Python 基礎 2-2 列表的實際應用場景Python
- Python基礎之list列表寫入檔案的四種方法Python
- Pandas 基礎 (13) - Crosstab 交叉列表取值ROS
- Linux 基礎網路命令列表Linux命令列
- 【WEB基礎】HTML & CSS 基礎入門(4)列表及其樣式WebHTMLCSS