日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python基础-02

發布時間:2023/11/29 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础-02 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常見的數據類型

?

列表

?

在python中,列表的創建可以是由[]兩個方括號組成的。在其他語言中,被稱之為數組。

列表里可以存放一組值,并且系統默認的給列表里的每一個元素以索引值,方便查找和使用。

如下:

?

#創建一個列表,并且保存一定的數據user_list = ['劉德華','張學友','張靚穎','郭富城','李白']print(user_list) #['劉德華', '張學友', '張靚穎', '郭富城', '李白']#根據索引值來讀取數據 print(user_list[0])#劉德華

我們在實際的應用中,可以非常方便的通過索引值來取出自己想要的值。

此時,如果需要在列表中取出多個連續的值,可以采用下面的寫法:

1 #創建存儲了多個值得列表 2 3 start_list = ['劉德華','張學友','張靚穎','郭富城','李白'] 4 5 #此時,需要取出 張學友到郭富城 6 s_list = start_list[1:4] 7 8 print(s_list) # ['張學友', '張靚穎', '郭富城']

?

在上面的代碼中,在取值的時候,我們使用了1:4,索引值從張學友的1到李白的4,但是李白卻沒有被選取到,此時的原則是顧頭不顧尾
而這樣的一種操作,我們稱之為切片

Tip:在進行切片?操作后,并不會改變原本的數組。

那么從左邊開始取值,索引值從0開始,如果從右邊開始取值,索引值從-1開始。

如果需要從右向左取值,有一點需要注意,例如:

#創建存儲了多個值得列表start_list = ['劉德華','張學友','張靚穎','郭富城','李白']

想要取值從右向左李白到張靚穎,寫法如下:

n_list = start_list[-3:]print(n_list)

從右向左,李白是-1 ,那么將-1省略,要取值到張靚穎,那么張靚穎的索引為-3,那么就寫成[-3:] 。

同理,如果從左向右取值,前面如果是0,也是可以省略的。

?

?

追加

?

如果我們需要給列表里面追加一些元素,可以使用append方法,向列表的最后追加一些元素。

#創建一個列表 user_list = ['宋小寶','趙四','劉能','小沈陽']#向列表中追加元素user_list.append('趙本山')#檢測原列表是否被改變 print(user_list)

輸出的結果:

['宋小寶', '趙四', '劉能', '小沈陽', '趙本山']

新追加的內容已經被追加到列表的最后。

如果需要將某個元素插入到某個元素之前,可以使用insert方法。
如下:

user_list = ['宋小寶','趙四','劉能','小沈陽']#將添加的內容添加到趙四的前面 user_list.insert(1,'趙本山') print(user_list)

結果如下:

['宋小寶', '趙本山', '趙四', '劉能', '小沈陽']

新的數據已經添加成功。

?

?

如果需要修改列表中的某一項,可以直接通過索引值找到元素并且直接賦予新值即可。

如下:

user_list[0] = '二人轉'

?

刪除

?

如果需要刪除列表中的元素,可以采用remove ,del 或者pop方式。

remove方法:

#創建一個列表 user_list = ['測試1','測試2','測試3','測試4']#使用remove方式刪除元素 user_list.remove('測試1')print(user_list)

del方法:

#創建一個列表 user_list = ['測試1','測試2','測試3','測試4']#使用del 方法刪除 del user_list[1]print(user_list)

pop方法:

#創建一個列表 user_list = ['測試1','測試2','測試3','測試4']#使用pop方法刪除 user_list.pop()print(user_list)

Tip:上面的pop方法此時沒有傳遞參數,會默認的把列表中最后一個值刪除,當然,pop()方法中同樣接受傳入參數[列表的索引值],所以一旦pop傳入了索引值,那么它的功能效果就等同于del方法。

?

總結

使用append方法,insert方法

刪除

使用remove ,del以及pop方法

直接使用索引值找到元素并且賦予新值

通過索引值的方式可以查詢數據

我們也可以通過index方法來查詢某個元素的在列表中的索引值。

如下:

?

#創建列表 user_list = ['測試1','測試2','測試3']index_user = user_list.index('測試2')print(index_user) # 1

在列表中,如果想要查看某個元素出現的次數,可以使用count方法

如下:

#創建列表 user_list = ['測試1','測試2','測試3','測試2','測試3']# 使用count方法統計一個元素在列表中出現的次數 num = user_list.count('測試2') print(num) # 2 表示測試2 出現了兩次

清空列表

?

python中清空列表可以使用clear方法

如下:

#創建列表 user_list = ['測試1','測試2','測試3','測試2','測試3'] #使用clear方法清空列表 user_list.clear(); #檢查列表是否被清空 print(user_list) #顯示為[] ,說明列表已經被成功清空了

反轉列表

?

python中反轉列表使用reverse方法

如下:

?

#創建列表 user_list = ['測試1','測試2','測試3','測試2','測試3'] #使用reverse方法反轉列表 user_list.reverse() print(user_list)

?

排序

python中列表的排序可以使用sort方法

如下:

#創建列表 list = ['2Ceshi2','#Ceshi1','ACeshi3','aCeshi4']list.sort() print(list)

結果如下:

['#Ceshi1', '2Ceshi2', 'ACeshi3', 'aCeshi4']

那么排序的順序其實是按照ASCII碼的順序進行排序。

?

合并列表

?

python中列表可以進行合并,使用extend方法

如下:

#創建列表 list = ['2Ceshi2','#Ceshi1','ACeshi3','aCeshi4'] #創建第二個列表 test_list = [1,2,3,4] #將第二個列表合并到list列表中 list.extend(test_list)print(list,test_list)

?

上述代碼中,test_list 順利的被合并到list中,而原本的test_list列表依然存在。

刪除整個列表

如下:

del 列表的名字

復制

python中,實現列表的復制,可以使用copy方法,而copy方法分為深層復制和淺層復制。

先來看下淺層復制:

1 '''2 copy()方法 復制3 4 淺層復制5 6 列表中還可以存在列表,也可以存在其他的數據類型,而淺層復制指的是僅復制第一層,而第二層列表7 中的內容僅復制指向內存地址的指針8 '''9 10 # 創建一個列表 11 test_list = ['alex','LiBai','Zhangxueyou','Zhaosi'] 12 13 test2 = test_list.copy() 14 15 print(test2) #['alex', 'LiBai', 'Zhangxueyou', 'Zhaosi'] 16 17 # 更改第一層列表中的某個元素值 18 test_list[0] = 'hello,world' 19 20 # 檢查是否更改成功 21 print(test_list) # 成功 22 23 #檢查test2是否更改第一個元素 24 print(test2) # 第二個列表沒有更改

此時在上面的代碼中,列表test_list第一個值進行了更改,而test2列表復制過來的第一個值則沒有更改。

如果列表test_list中還存在一個列表,在淺層復制的情況下,會出現如下的情況:

# 創建一個列表 - 并且列表中存在二級的列表 test_list = ['alex','LiBai','Zhangxueyou','Zhaosi',['Nihao','yanyan']]test2 = test_list.copy() # 第一個列表已經全部被復制了過來# 更改第一個列表中子集列表的值 test_list[4][0] = ['NIHAO']# 查看test2列表是否更改 print(test2)

發現此時test2列表已經更改:

['alex', 'LiBai', 'Zhangxueyou', 'Zhaosi', [['NIHAO'], 'yanyan']]

原因是此時的復制是淺層復制,只復制到了第一層,第二層里面的列表并沒有進行復制,只是復制了一個指向內存方向的指針。

深層復制需要引入copy模塊

代碼如下:

import copy# 創建列表 list_user = ['alex','libai','zhaobenshan',['yanyan','yuping']]# 進行深層復制 new_list = copy.deepcopy(list_user)#print(new_list) # 復制成功# 更改第一組列表 list_user[3][0] = "YANYAN"print(list_user) print(new_list)

通過引入copy模塊,并且使用deepcopy方法即可實現深層復制

?

循環列表

?

列表的循環使用for..in 即可。

代碼如下:

# 創建列表 test_list = ['alex','libai','shaopengtao','wangmengchan']for i in test_list:print(i) # 循環成功

補充:代碼切片

我們在打印列表的時候,可以使用切片的方式,例如

test_list = ['alex','libai','shaopengtao','wangmengchan']

有這樣的一個列表,然后現在想將列表0到-1的位置進行切片,

print(0:-1)

那么此時如果想要在切片的基礎上進行每兩個選取一個,代碼可以寫成如下:

print(0:-1:2)

那么最終實現的效果如下:

['alex', 'shaopengtao']

那么在切片的過程中,如果開始或者結束的位置是0或者-1是可以被省略的,所以上面的代碼就變成了如下:

print(::2)

結果同樣是不變的。

?

?

知識點補充和總結:

上面我們說到,淺層復制的使用,其實在實際應用的情景下大概有三種方式可以實現淺層復制,例如下面的演示代碼,將演示三種淺層復制的情況:

1 import copy2 # 創建列表3 test_list = ['name',['deposit',100]]4 5 '''6 實現淺層復制的三種寫法:7 8 copy方法9 [:] 10 list 11 ''' 12 ''' 13 # 第一種方式,使用copy.copy 14 new_list = copy.copy(test_list) 15 print(new_list) 16 ''' 17 ''' 18 #第二種方式 19 new_list = test_list[:] 20 print(new_list) 21 ''' 22 23 #第三種方式 24 new_list = list(test_list) 25 print(new_list)

?

?

淺層復制的應用

?

例如,夫妻之間有一個共同的銀行賬戶,里面有著共同的財產,其中一個人取錢或者存錢,那么另一放的余額顯示肯定是要更改的。

代碼如下:

# 創建列表,演示夫妻共用一個銀行賬戶的需求money = ['name',['deposit',2000]]# 創建兩個不同的人 libai = money[:] yanyan = money[:]#此時當丈夫libai 取了1000塊 libai[0] = 'LiBai' libai[1][1] = 2000 - 1000yanyan[0] = 'Yanyan'# 此時無論是丈夫libai還是妻子yanyan的銀行存款余額都會變少,因為二人共用一個賬戶 print(libai) print(yanyan)

?

說的簡單點,就是通過淺層復制來實現共享賬號,當然,上面的應用只是簡單的舉個例子,在實際中,銀行也不會將數據存儲在列表中。

?

元組(tuple)

?

元組其實類似于列表,也就是存一組數,只不過它一旦創建,便不能再次修改,所以又叫做只讀列表。

元組本身只能切片和查詢但是不能夠更改。

代碼如下:

names = ('Alex','Libai','Jack')

在元組這個對象里面,只有兩個方法,一個是count,一個是index。

?

小練習:購物車

?

需求:

?

?

代碼如下:

1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-3 # Author:Li Bai4 5 # 創建列表6 product_list = [7 ('Iphone',5800),8 ('Mac Pro',9800),9 ('Bike',800), 10 ('Watch',10600), 11 ('Coffee',31), 12 ] 13 14 # 創建一個空列表,用來存儲用戶購買的商品 15 shopping_list = [] 16 17 salary = input('Input your Salary:') 18 # 判斷用戶輸入的是否是數字 19 if salary.isdigit(): 20 # 將用戶輸入的轉換為int整型 21 salary = int(salary) 22 # 循環輸出列表 23 while True: 24 # 輸出商品列表中的內容和索引值 25 for index,item in enumerate(product_list): 26 # 輸出 27 print(index,item) 28 user_choice = input('你好,請輸入購買的商品序號:') 29 # 判斷用戶輸入的是否為序號數字 30 if user_choice.isdigit(): 31 user_choice = int(user_choice) 32 # 判斷用戶輸入的商品序號是否是合理的 33 if user_choice < len(product_list) and user_choice >= 0: 34 print(user_choice) 35 p_item = product_list[user_choice] 36 # 判斷用戶的財產是否足夠 37 if p_item[1] <= salary: # 買的起 38 shopping_list.append(p_item) # 將用戶選取的商品存進shopp_list列表 39 salary -=p_item[1] # 將財產減去購買的商品列表 40 # 打印財產余額 41 print("Add %s into shopping cart ,your current balance is %s" %(p_item,salary)) 42 else : 43 print('你的余額只剩%s,余額不足'% salary) 44 else : 45 print("product code [%s] is not exist!"% user_choice) 46 elif user_choice == 'q': 47 print("--------shopping list------") 48 for p in shopping_list: 49 print(p) 50 print("Your current balance:",salary) 51 exit() 52 else: 53 print("invalid option")

?

轉載于:https://www.cnblogs.com/yujihaia/p/7468267.html

總結

以上是生活随笔為你收集整理的python基础-02的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。