Python四種常用容器類型


一、字符串容器(string)

1.#for循環遍歷字符串

My_str = 'hi,你好'

for v in My_str:

print(v,end='')    
輸出:
2.#replace替換函數
my_string = '尋尋覓覓,冷冷清清,柒柒慘慘戚戚'
print(my_string)        #還未替換前
print(my_string.replace('','',2)) #替換后重新生成一個字符串,2代表替換兩次

輸出結果:

字符串(string)特點

1、字符串一旦定義不允許修改(賦值)

2、字符串容器里面的元素都是字符類型

字符串切片案例:(切片語法:左閉右開)

#-----------------------------方法一(find)
email = 'chenroubao@IT.com'
#如果查找到,返回子串第一次出現的位置;找不到就返回-1
position = email.find('@')
if position == -1:
 print('不存在@!')
else:
 left = email[:position]
 right = email[position+1:]
 print('左邊是:',left)
 print('右邊是:',right)
 print('逆序輸出:',email[::-1])#-------逆序輸出
輸出結果:
#--------------方法二(split)
email = 'chenroubao@IT.com'
count = email.count('@')
if count == 1:
 result = email.split('@')
 print('左邊是:',result[0])
 print('右邊是:',result[1])
else:
 print('郵箱不合法!')
輸出結果:

二、列表容器(list)

 1 #插入刪除函數
 2 my_list = []
 3 
 4 #append在尾部插入元素
 5 my_list.append(1)
 6 my_list.append(2)
 7 my_list.append(3)
 8 my_list.append(4)
 9 print(my_list)                #[1,2,3,4]
10 #insert 在指定位置插入
11 my_list.insert(2,1)            
12 print(my_list)                #[1,2,1,3,4]
13 #pop 用於位置刪除,默認刪除最后一個元素
14 my_list.pop()                
15 print(my_list)                #[1,2,1,3]
16 my_list.pop(3)                
17 print(my_list)                #[1,2,1]
18 #remove 根據值刪除,默認刪除第一個出現的值
19 my_list.remove(1)             
20 print(my_list)                #[2,1]
21 #clear 清空
22 my_list.clear()
23 print('列表長度:',len(my_list))     #列表長度:0
 1 #排序函數
 2 #產生10個隨機數
 3 import random
 4 list = []
 5 i = 0
 6 while i < 10:
 7  random_shu = random.randint(1,10)
 8  list.append(random_shu)
 9  i += 1
10 print(list)
11 #sort排序 默認升序 (設置reverse=True降序)
12 list.sort()
13 print(list)
14 #reverse逆序輸出
15 list.reverse()
16 print(list)
輸出結果:
#extend擴大 用於兩個list合並
list = [1,2]
list2 = [3,4]
list.extend(list2)
print(list)           #輸出:[1,2,3,4]

 

列表(list)優缺點:

優點:

支持位置刪除(尾部刪除、指定位置刪除)和值刪除

尾部插入和刪除效率更高,原因是:不需要移動元素

指定位置插入和刪除效率較低,原因是:需要移動元素,元素越多,效率越低

缺點:

查找效率低(列表是序列式存儲的,假如查找的元素位置在最后,那相當於把整個列表都查了一遍才找的出來,所以效率低。)

但是指定位置的查找效率是高的。

三、元祖(tuple)

#元祖的定義
tuple = ((1,),)
print(tuple)        #輸出:  ((1,))

元祖(tuple)特點:

不支持修改,只支持遍歷、查找

元祖內只有一個元素時,加,(逗號)

元祖比列表更節省空間

元祖是序列式容器,支持索引、切片操作

四、字典(dict)

def test():
  #字典定義
  my_dict = {'name':'obama','age':18,'sex':''}
  print(my_dict.get('name1','key不存在,這里是默認值'))
#key不存在,就添加元素;存在就是修改元素
  my_dict['score'] = 100
  print(my_dict)
test()

輸出結果:

 

 1 #字典遍歷
 2 my_dict = {'name':'obama','age':18,'sex':''}
 3 for val in my_dict:
 4  print(val)        #輸出鍵,沒有值
 5 key = my_dict.keys()
 6 print(list(key))      #按列表輸出鍵
 7 val = my_dict.values()  
 8 print(list(val))      #按列表輸出值
 9 key_value = my_dict.items()
10 print(list(key_value))   #輸出鍵值對
11 for keyval in key_value:
12  print('key:',keyval[0],'value:',keyval[1])
輸出結果:
1 # while循環遍歷字典
2 my_dict = {'name':'obama','age':18,'sex':''}
3 list = list(my_dict.items())
4 i = 0
5 while i < len(list):
6   print('key:',list[i][0],'value:',list[i][1])
7   i += 1
輸出結果:

字典(dict)特點:

字典是非序列式容器,不支持索引、切片

查找效率高,空間占用較大。以空間換時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM