01-list1
02-list_add
03-list_delete
04-list_operation
05-list function and usage method
06-tuple
01-list1
python中的數據類型:數字、字符串、列表、元組、字典、集合(序列)(容器類型的數據)
列表(數組):一個列表可以存儲多個不同類型的數據
列表存儲數據的方式:將多個數據放到以[]中,多個數據之間用逗號隔開
列表特點:列表是可變的(指的是里面的元素的個數和值可變)
[]是列表的標志
1.1.聲明一個列表
聲明了一個列表list1,有5個元素,分別是1,2,3,10.9,'abc'
list1 = [1, 2, 3, 10.9, 'abc']
print(list1)
聲明一個空的列表
list2 = []
1.2.獲取列表元素
a.獲取單個元素(通過元素對應的下標)
下標的范圍:0~(元素個數-1);
通過下標獲取列表元素的時候,下標不能越界
print(list1[0]) # 獲取下標是0的元素
print(list1[3]) # 獲取下標是3的元素
print(list1[-1]) # 獲取最后一個元素
# print(list1[5]) # IndexError: list index out of range 索引錯誤:超出范圍的列表索引
b.獲取列表中的部分元素(切片)
列表名[開始下標:結束下標]
獲取到的是從開始下標到結束下標前的所有元素,組成的列表
list3 = [2, 10.5, 'a', 'abc', 10, 'dg',34 , 3]
print(list3[1:4]) # 獲取下標為1開始到下標3的所有的元素
print(list3[:4]) # 獲取從第一個元素開始到下標為3的所有元素
print(list3[2:]) # 獲取從下標為2開始到列表最后的所有元素
print(list3[:]) # 獲取列表開始到結束的所有元素
列表名[開始下標:結束下標:步長]
print(list3[0::2]) #從下標為0開始,每2個元素取一個
注意:
如果 步長 = -1,切片方式為從開始下標到結束下標倒著去取值(結束下標對應值取不到),且開始下標值>=結束下標值
元組(tuple)和字符串(str)同理
t1 = (1, 2, 3, 4, 5, 6, 7)
t2 = t1[4:1:-1]
print(t2) # value:(5, 4, 3)
c.遍歷列表(for 循環)
list4 = [1, 2, 3, 4, 5]
for item in list4:
if item % 2 == 0:
print(item)
計算列表中所有元素的和
sum1 = 0
for item in list4:
sum1 += item
print(sum1)
同時取到列表中元素和下標
使用while計算下標為奇數元素的和
while x < len(list4):
if x % 2 == 0:
x += 1
continue
sum1 += list4[x]
print(sum1)
02-list_add
2.1.append方法:列表名.append(元素)
append() 是將元素添加到列表的最后的
list1.append('abc')
print(list1)
list1.append(10)
print(list1)
練習:找出列表中[1,34,5,6,89,3,2,4]所有的偶數,并且保存起來
list1 = [1, 34, 5, 6, 89, 3, 2, 4]
list2 = []
for item in list1:
if item % 2 == 0:
list2.append(item)
print(list2)
2.2.insert: 列表名.insert(下標,元素)
在指定的下標前插入指定的元素
ist3 = [1, 2, 3, 4, 5, 6, 7, 8]
list3.insert(1, 'a')
print(list3)
練習:通過insert在4和5之間插入元素'b';再在8后面插入元素'4'
list3.insert(5, 'b')
list3.insert(10, 'c') # 當下標大于等于列表的長度,會插入到列表的最后
list3.insert(0, 'd') # 在列表的最前面插入一個元素
print(list3)
===================修改元素===================
修改元素:通過下標拿到對應的元素,然后重新賦值
list1 = [1, 2, 3, 4, 5]
list1[1] = 20
print(list1)
讓列表中的所有元素變為原來的2倍
for i in range(0,len(list1)):
list1[i] = list1[i]*2
print(list1)
03-list_delete
3.1.del語句:在python中,del可以刪除任何內容
a.del語句刪除列表元素:del 列表名[下標]
str1 = 'Hello'
list1 = ['a', str1, 10+20, 'b', True]
# 刪除下標為1的元素
del list1[1]
print(list1)
# del刪除的時候下標不能越界
# del list1[20]
練習刪除列表中所有的偶數
通過下標刪除要注意下標的重新分配
list2 = [1, 2, 3, 4, 5, 6, 7, 8]
index = 0
while index < len(list2):
if list2[index] % 2 == 0:
del list2[index]
else:
index += 1
print(list2)
b.刪除列表中字符串
isinstance(變量,類型):判斷指定變量、值是否是指定類型
str(字符串)、int(整型)、float(浮點型)、bool(布爾)、complex(復數)、list(列表)、tuple(元組)、dict(字典)、set(集合)
re = isinstance(2+3i,complex) # 獲取'aa'是否是字符串
print(re)
刪除列表中的 字符串
list3 = ['a', 1, 20, 'pp', 19.3, 'ohk']
index = 0
while index < len(list3):
if isinstance(list3[index],str):
del list3[index]
else:
index += 1
print(list3)
3.2.通過remove方法刪除指定元素
格式:列表名.remove(元素)
list4 = ['a', 'b', 'c', 1, 2, 3]
list4.remove('c')
print(list4)
使用remove刪除列表元素的時候,如果指定的元素在列表中有多個,只刪除第一個
list4 = ['a', 'b', 'c', 1, 2, 3,'c']
list4.remove('c')
print(list4)
刪除列表[1, 3, 4, 7, 8, 2, 3, 4, 1]中所有的奇數
list5 = [1, 3, 4, 7, 8, 2, 3, 4, 1]
index = 0
while index < len(list5):
if list5[index] % 2 != 0:
list5.remove(list5[index])
else:
index += 1
print(list5)
3.3.使用pop()方法刪除指定下標的元素
格式1:列表名.pop(下標) 從列表中取出指定下標對應的元素
格式2:列表名.pop() 從列表中取出最后一個元素
list6 = [1, 2, 3, 4, 5, 6]
delitem = list6.pop(1) # 將下標是1的元素從list6中取出,并且存到變量delitem中
print(delitem,list6)
del_item2 = list6.pop()
print(del_item2,list6)
將一個列表[1, 2, 3, 4, 5, 6]中的元素全部取出放到另一個列表里變成[6, 5, 4, 3, 2, 1]
方法一:
list6 = [1, 2, 3, 4, 5, 6]
list7 = []
index = 0
while index < len(list6):
# 從前往后取
del_item = list6.pop(index)
list7.insert(0,del_item)
print(list6, list7)
方法二:
list6 = [1, 2, 3, 4, 5, 6]
list7 = []
while len(list6) > 0:
# 從后往前取
value = list6.pop()
list7.append(value)
print(list6,list7)
方法三:
list6 = [1, 2, 3, 4, 5, 6]
list7 = []
for _ in range(0,len(list6)):
value = list6.pop()
list7.append(value)
print(list6, list7)
04-list_operation
4.1.求列表的長度:len(列表名)
list1 = [1, 2, 3, 4, 5, 6]
length = len(list1)
print(length)
4.2.列表的+操作
列表1 + 列表2 : 將列表1和列表2中的元素,組合成一個新的列表
list2 = [1, 2, 3, 4] + ['a','b']
print(list2)
4.3.列表的*操作
列表整數 : 將列表中元素重復指定次數,組合成一個新的列表*
list3 = [10, 2] * 4
print(list3)
4.4.in 和 not in
元素 in 列表:判斷指定的元素是否在指定的列表中
list4 = ['abc', '123', 1, '0o', 10]
re = 'abcd' in list4
print(re)
元素 not in 列表:判斷指定的元素是否不在指定的列表中
5.5.獲取列表中最大、最小的元素
格式: max(列表)、min(列表)、sum(列表(只能是數字類型))
list5 = [1, 34, 6, 78, 90, 12, 35]
max1 = max(list5)
print(max1)
list6 = ['abc', 'a', 'b', 'aaa']
print(max(list6))
注意:獲取最大值或者最小值的時候,列表中的元素的類型要么都是數字,要么都是字符串
list7 = ['a', 'b', 1, 3]
print(max(list7)) #TypeError: '>' not supported between instances of 'int' and 'str'
練習:求表演的平均分數5個裁判,給表演打分。去掉一個最高分,去去掉一個最低分,求最后的平均分
import random
list8 = []
for _ in range(0,5):
value = random.randint(0,10)
list8.append(value)
print(list8)
max1 = max(list8)
list8.remove(max1)
min1 = min(list8)
list8.remove(min1)
# 計算平均數
# sum(列表):計算列表中所有的元素的和
print(sum(list8)/len(list8))
4.6.將其他的數據轉換成列表
格式: list(數據)
list1 = list('abcdef')
print(list1)
將range()轉換成列表
list2 = list(range(10))
print(list2)
將列表轉換成字符串(不是僅僅將列表的元素拼接成字符串的,而是將整個列表所有的結構都作為字符串的字符
str1 = str([1, 2, 3, 'a'])
print(str1)
print(list(str1)) # value:['[', '1', ',', ' ', '2', ',', ' ', '3', ',', ' ', "'", 'a', "'", ']']
05-list function and usage method
5.1.count(obj):統計某個元素在列表中出現的次數
list1 = [1, 1, 1, 2,]
print(list1.count(1))
5.2.extend(seq):在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
seq -- 元素列表
list2 = ['a', 'b']
list2.extend(list1)
print(list2)
5.3.index(obj):從列表中找出某個值第一個匹配項的索引位置(下標)
list3 = [1, 2, 3, 4, 3]
print(list3.index(3))
5.4.reverse():反向列表中元素,函數的返回值為空
print(list3,list3.reverse())
5.5.sort(cmp,key,bool):對原列表進行排序
list3.sort(reverse = True) #降序
print('5.---', list3)
list3.sort() #升序
print(list3)
5.6.clear():清空列表
list3.clear()
print(list3)
5.7.copy():復制列表
list7 = list3.copy()
print('7.===', list7)
06-tuple
元組(tuple)就是不可變的列表
列表中除了增加、修改和刪除相關的操作都適用于元組
什么時候用?就是存到容器中的數據不能被修改的時候使用
例如:星期幾對應的值
6.1.聲明元組
tuple1 = (1, 2, 3, 4, 'aa', True)
print(tuple1)
6.2.只有查可用,和列表一致
print(tuple1[0])
print(tuple1[-1])
print(tuple1[0:3])
for item in tuple1:
print(item)
for index in range(len(tuple1)):
print(tuple1[index])
6.3.+,*可以用(形成一個新的元組,原來的元組不變)
print((1, 2, 3) + ('a', 'b', 'c'))
print((1, 2, 3)*3)
6.4.in , not in
a = 10
print(a in (10, 2))
print(a not in (10, 2))
6.5.不支持增、刪、該
練習:輸入1~7的數字,對應輸出是星期幾。例如:輸入1,就是輸出“星期一”
week = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')
while True:
num = int(input('input number 1~7',))
print(week[num-1])