列表: 有序的儲存一組資料;列表中的元素可以是不同型別的,但是一般情況下,列表裡都只儲存單一型別的值
list內建類需要乙個可迭代物件,可以將乙個可迭代物件轉換成為列表
轉換字典時,只會保留字典的key
words = list()
print(words) #['name', 'age', 'height']
使用下標獲取列表元素
nameslist = ['xiaowang','xiaozhang','xiaohua']
print(nameslist[0]) #xiaowang
1.增加元素:
names = ['zhangsan', 'lisi', 'wangwu']
print(names) #['zhangsan', 'lisi', 'wangwu', 'jerry']
insert insert(index, object) 在指定位置index(下標)前插入元素object
strs = ['a','b','m','s']
strs.insert(3,'h')
print(strs) # ['a', 'b', 'm', 'h', 's']
extend 通過extend可以將另乙個集合中的元素逐一新增到列表中
a.extend(b) ==> 把b裡的所有元素都新增到a裡
a = ['a','b','c']
b = ['d','e','f']
a.extend(b)
print(a) # ['a', 'b', 'c', 'd', 'e', 'f'] 將 b 新增到 a 裡
print(b) # ['d','e','f'] b的內容不變
列表之間可以使用加法運算子,將兩個列表合併成為乙個列表。
foods = ['rice', 'noddle']
x = fruits + foods
2.刪除元素:
clear 清空列表裡的所有元素
a = [1, 2, 3, 4, 5]
a.clear()
print(a) #
a = #重新賦值,也可以實現清空的效果
pop 刪除指定位置上(根據下標)的元素;如果不傳引數,預設是最後乙個;pop方法有返回值,返回值是被刪除的元素
y = fruits.pop(1)
print(y) #banana
remove 需要引數(只能乙個),根據元素的值進行刪除
print(fruits) #['banana', 'pear']
del 根據下標進行刪除,也可以直接刪除變數
del fruits[0]
print(fruits) #['banana', 'pear']
del fruits # 刪除變數
3.修改資料:
列表可以通過下標來獲取和修改元素。
fruits[0] = 'hhh'
print(fruits) #['hhh', 'banana', 'pear']
4.查詢資料:
index 用來查詢元素所在的位置(下標),如果未找到則會報錯
print(fruits.index('ha')) #報錯valueerror
count 查詢元素出現次數
print(fruits .count('pear')) #1
in和not in in(存在),如果存在那麼結果為true,否則為false;not in(不存在),如果不存在那麼結果為true,否則false
#待查詢的列表
namelist = ['xiaowang','xiaozhang','xiaohua']
#獲取使用者要查詢的名字
findname = input('請輸入要查詢的姓名:')
#查詢是否存在
if findname in namelist:
print('在列表中找到了相同的名字')
else:
print('沒有找到')
5.排序
sort 是將list按特定順序重新排列,
引數key:型別是乙個函式,表示的是以哪種方式進行排序
引數reverse:表示是公升序或者降序排序(預設值是false,表示公升序排列)
a = [1, 4, 2, 3]
a.sort() # 預設從小到大排序
print(a) #[1, 2, 3, 4]
b = [1, 4, 2, 3]
b.sort(reverse=true) # 從大到小排序
print(b) #[4, 3, 2, 1]
reverse 是將list逆置
b = [1, 4, 2, 3]
b.reverse()
print(b) #[3, 2, 4, 1]
6.手動實現氣泡排序:
while迴圈實現:
nums = [6, 5, 3, 1, 8, 7, 2, 4]
j = 0
while j < len(nums) - 1: # 外迴圈用來控制趟數
i = 0
flag = true # 假設每一次都沒有交換資料
# 內迴圈用來控制每一趟比較的次數
while i < len(nums) - 1 - j: # 每趟多比較的次數正好就是j的值
if nums[i] > nums[i + 1]:
nums[i + 1], nums[i] = nums[i], nums[i + 1]
flag = false # 說明資料交換了,假設不成立
i += 1
j += 1
if flag: # 如果這一趟走完了,flag依然是true,就說明沒有資料交換,停止迴圈
break
print(nums)
for迴圈實現:
nums = [6, 5, 3, 1, 8, 7, 2, 4]
for j in range(0, len(nums) - 1):
for i in range(0, len(nums) - 1 - j):
if nums[i] > nums[i + 1]:
nums[i + 1], nums[i] = nums[i], nums[i + 1]
print(nums)
7.列表巢狀:
class1 = ['zhangsan', 'lisi', 'wangwu']
class2 = ['jerry', 'henry', 'merry']
class3 = ['tony', 'jack', 'rose']
#names是乙個列表,列表裡的每乙個元素又是列表
names = [class1, class2, class3]
print(names[1][2]) #merry
#乙個學校有3個辦公室,現在有8位老師等待工位的分配,請編寫程式,完成隨機的分配
rooms = [, , ]
teachers = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
for teacher in teachers:
i = random.randint(0, 2)
print(rooms)
for i, room in enumerate(rooms): # 帶下標的遍歷列表
print("辦公室%d有%d人,分別是:" % (i, len(room)), end='')
for teacher in room:
print(teacher, end=' ')
print()
列表相關操作
lst1 1 2 lst2 3 4 lst lst1 lst2 print lst lst1 1 2 lst lst1 3print lst 語法 列表 完整格式 開始索引 結束索引 間隔值 1 開始索引 從開始索引擷取到列表的最後 2 結束索引 從開頭擷取到結束索引之前 結束索引 1 3 開始索引...
Python 列表相關操作
一 列表相關操作彙總 二 列表的建立 1 list 建立 使用 list 可以將任何可迭代的資料轉化成列表。a list 建立乙個空的列表物件 a list range 10 a 0,1,2,3,4,5,6,7,8,9 a list gaoqi,sxt a g a o q i s x t 2 ran...
list列表相關操作
字串的操作 s alexwusir s1 s.capitalize print s1 大寫,小寫 s2 s.upper s3 s.lower print s2,s3 s str aceq your input input 請輸入驗證碼 不區分大小寫 if s str.lower your input...