列表相關方法和操作

2021-10-06 09:34:16 字數 3981 閱讀 1797

列表: 有序的儲存一組資料;列表中的元素可以是不同型別的,但是一般情況下,列表裡都只儲存單一型別的值

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...