程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python】高級變量通關教程上篇(列表、元組、字典)

編輯:Python

個人主頁:黃小黃的博客主頁
支持我: 點贊 收藏 關注
格言:一步一個腳印才能承接所謂的幸運

本文來自專欄:Python基礎教程
歡迎點擊支持訂閱專欄 ️

寫在前面

本文對 Python 中的高級變量:列表、元組、字典進行了知識總結與講解。高級變量中的字符串由於內容比較多,博主將放在下篇:
【Python】高級變量通關教程下篇(字符串專題)
為大家講解,感興趣的同學可以訂閱專欄,或者關注一下我,不錯過第一時間的更新。好啦,閒話到此結束,開始高級變量的學習吧~~~


文章目錄

  • 寫在前面
  • 1 列表
    • 1.1 列表說明
    • 1.2 列表的常用操作
      • 1.2.1 列表的查找與修改值
      • 1.2.2 列表的增添數據
      • 1.2.3 列表的刪除數據
      • 1.2.4 列表中的統計方法
      • 1.2.5 列表的排序與反轉
    • 1.3 列表的迭代遍歷
  • 2 元組
    • 2.1 元組說明
    • 2.2 元組的常用操作
    • 2.3 元組的迭代遍歷
    • 2.4 元組與列表的相互轉化
  • 3 字典
    • 3.1 字典說明
    • 3.2 字典的常用操作
      • 3.2.1 字典的查找與增刪改
      • 3.2.2 字典的統計、合並與清空
    • 3.3 字典的迭代遍歷
    • 3.4 字典與列表綜合應用場景
  • 寫在最後


1 列表

1.1 列表說明

  • List 列表是 Python 中使用最頻繁的數據類型,在其他語言中通常為數組;
  • 列表用於存儲一串信息,使用 [ ] 定義,數據之間使用 分隔;
  • 列表的索引,也可以稱之為下標,是從 0 開始的

下面我們來簡單定義一個列表,存儲三名學生的姓名,代碼如下:

students_name = ["黃小黃", "祢豆子", "我妻善逸"]

通過圖示,詳細了解列表的存儲結構:

1.2 列表的常用操作

1.2.1 列表的查找與修改值

列表的 查找值 只需要通過索引即可查找,如下代碼,結果見注釋:

students_name = ["黃小黃", "祢豆子", "我妻善逸"]
students_name[0] # 黃小黃
students_name[1] # 祢豆子
students_name[2] # 我妻善逸

需要注意的是,列表取值不能超過索引的最大值,即列表的長度 - 1,否則會報錯

如果需要 查找列表的索引, 則通過 index() 方法實現:

students_name = ["黃小黃", "祢豆子", "我妻善逸"]
students_name.index("黃小黃") # 0
students_name.index("祢豆子") # 1
students_name.index("我妻善逸") # 2

當然,如果傳遞的數據不在列表中,程序會報錯

修改列表數據 只需要通過索引直接修改:

students_name = ["黃小黃", "祢豆子", "我妻善逸"]
# 修改數據
students_name[1] = "大頭"
print(students_name) # ['黃小黃', '大頭', '我妻善逸']

1.2.2 列表的增添數據

如果希望 向列表中添加數據,則主要通過如下三個方法實現:

方法名說明append(self,object)向列表的末尾追加數據insert(self,index,object)在列表的指定索引位置插入數據extend(self,iterable)將一個列表拼接到列表的末尾

代碼示例如下:

students_name = [] # 先定義一個空列表
# 添加三條數據
students_name.append("黃小黃")
students_name.append("馬小淼")
students_name.append("大頭")
print(students_name) # ['黃小黃', '馬小淼', '大頭']
# 插入數據
students_name.insert(2, "小牛馬")
print(students_name) # ['黃小黃', '馬小淼', '小牛馬', '大頭']
# 拼接列表
my_list = ["小鵬", "幾何心涼"]
students_name.extend(my_list)
print(students_name) # ['黃小黃', '馬小淼', '小牛馬', '大頭', '小鵬', '幾何心涼']

結果:

1.2.3 列表的刪除數據

如果希望 從列表中刪除數據,則主要通過如下三個方法實現:

方法名說明remove(self,object)刪除列表中指定數據(多次出現則刪除第一個,如果沒有則報錯)pop(self,index)在不使用參數 index 時,默認刪除並返回列表末尾的數據;使用參數 index 可以指定希望刪除數據的索引clear(self)清空列表

代碼示例如下:

mylist = ["黃小黃", "祢豆子", "漩渦鳴人", "草帽路飛"]
# 刪除指定數據
mylist.remove("黃小黃")
print(mylist) # ['祢豆子', '漩渦鳴人', '草帽路飛']
# 刪除末尾數據
mylist.pop()
print(mylist) # ['祢豆子', '漩渦鳴人']
# 清空
mylist.clear()
print(mylist) # []

結果:

同時,刪除數據也可以通過 del 關鍵字實現,但是需要注意區別:使用 del 是從內存上刪除變量,後續的代碼就不能使用這個變量了

mylist = ["黃小黃", "祢豆子", "漩渦鳴人", "草帽路飛"]
del mylist[1]
print(mylist) # ['黃小黃', '漩渦鳴人', '草帽路飛']
del mylist
print(mylist) # NameError: name 'mylist' is not defined

1.2.4 列表中的統計方法

常用的列表統計方法如下表:

方法名說明len(list)統計列表中的元素種數count(object)統計列表中某一數據出現的次數

參考代碼示例:

mylist = ["黃小黃", "祢豆子", "漩渦鳴人", "草帽路飛", "黃小黃"]
mylist_len = len(mylist)
print("列表的長度(元素個數): %d" % mylist_len) # 5
count = mylist.count("黃小黃")
print("黃小黃 出現的次數: %d" % count) # 2

結果:

1.2.5 列表的排序與反轉

相關方法如下表:

方法名說明sort()升序排序sort(reverse = True)降序排序reverse()反轉列表

需要注意的是,升序排序對於數字而言是從小到大;對於字符串和字符而言,是字典順序,比如 a 比 z 小

參考示例代碼:

words = ["abc", "Abc", "z", "dbff"]
nums = [9, 8, 4, 2, 2, 3]
# 升序排序
words.sort()
nums.sort()
print(words) # ['Abc', 'abc', 'dbff', 'z']
print(nums) # [2, 2, 3, 4, 8, 9]
# 降序排序
words.sort(reverse=True)
nums.sort(reverse=True)
print(words) # ['z', 'dbff', 'abc', 'Abc']
print(nums) # [9, 8, 4, 3, 2, 2]
# 反轉
nums.reverse()
print(nums) # [2, 2, 3, 4, 8, 9]

結果:

1.3 列表的迭代遍歷

遍歷是指從頭到尾依次從列表中獲取數據,使用 for 循環就很容易實現,語法基礎格式如下:

# for 循環內部使用的變量 in 列表
for name in name_list:
# 循環內部對列表進行的操作
print(name) # 比如打印

示例代碼與結果:

student_list = ["黃小黃", "馬小淼", "大頭", "小牛馬"]
# 迭代遍歷
for student in student_list:
print(student)


2 元組

2.1 元組說明

  • Tuple 元組與列表類似,最大的區別是元組的 元素不能修改
  • 元組表示多個元素組成的序列,用於存儲一串信息,數據之間使用 分隔;
  • 元組使用 ( ) 定義,索引從 0 開始。

示例1️⃣ 創建一個空元組

tuple = ()

示例2️⃣ 創建一個元組

tuple = ("黃小黃", "路飛", "娜美")

元組只包含一個元素時,需要在元素後面加 ,

2.2 元組的常用操作

由於元組中的元素是不可變的,因此 python 提供的元組方法通常為只讀,常用的有 index()count()

示例代碼與結果:

my_tuple = ("黃小黃", "馬小淼", "草帽路飛", "黃小黃")
# 讀取索引
print(my_tuple.index("馬小淼")) # 1
# 統計出現次數
print(my_tuple.count("黃小黃")) # 2

2.3 元組的迭代遍歷

與列表的遍歷類似,但是在實際開發中,我們並不常常遍歷元組,除非能夠確認 元組中元素的數據類型。

# for 循環內部使用的變量 in 元組
for name in name_touple:
# 循環內部對元組進行的操作
print(name) # 比如打印

小結:在 Python 中可以使用 for 循環遍歷所有非數字類型的變量:列表、元組、字符串以及字典

2.4 元組與列表的相互轉化

  • 元組轉化為列表,通過 list 函數實現
  • 列表轉化為元組,通過 tuple 函數實現

參考代碼:

temp_tuple = ("黃小黃", "馬小淼", "草帽路飛")
my_list = list(temp_tuple)
print(my_list)
print(type(my_list))
my_tuple = tuple(my_list)
print(my_tuple)
print(type(my_tuple))

結果:


3 字典

3.1 字典說明

  • 字典使用 {} 定義,是 無序的對象集合
  • 字典使用 鍵值對 存儲數據,其間使用 , 分隔;
  • key 是索引,值 value 是數據;
  • 鍵值之間使用 : 分隔;
  • 鍵必須是唯一的,且必須為字符串、數字或元組,值可以為任何數據類型。

下面我們來簡單定義一個字典,代碼如下:

nezuko = {
"name": "祢豆子",
"age": 6,
"height": 145,
"phone": 123456789}

通過圖示,詳細了解字典的存儲結構:

3.2 字典的常用操作

3.2.1 字典的查找與增刪改

️ 通過對列表和元組的學習,想必已經對索引取值已經增添刪除數據有了一定的認識,這裡直接上代碼舉例:

1. 查找值
字典的取值同樣通過索引的方式來取值,只不過,字典的索引是key。需要注意的是,進行取值操作時,如果指定的key不存在,程序會報錯!

nezuko = {
"name": "祢豆子",
"age": 6,
"height": 145,
"phone": 123456789}
# 查找值,取值
print(nezuko["name"])
print(nezuko["age"])
print(nezuko["height"])
print(nezuko["phone"])

2. 增添及修改值
在 python 中增添與修改值很簡單,只需要使用索引添加或修改。如果key存在,則會修改數據;如果key不存在,則會新增鍵值對。

nezuko = {
"name": "祢豆子",
"age": 6,
"height": 145,
"phone": 123456789}
# 添加
nezuko["性別"] = "女"
# 修改
nezuko["age"] = 3
# 打印
print(nezuko)

3. 刪除值與字典
刪除有兩種方式,使用 pop() 方法指定 key 刪除或者使用關鍵字 del 並指定 key 刪除。當然,也可以通過 del 關鍵字刪除字典。

nezuko = {
"name": "祢豆子",
"age": 6,
"height": 145,
"phone": 123456789}
# 刪除
del nezuko["phone"]
nezuko.pop("height")
print(nezuko)
# 刪除字典
del nezuko
print(nezuko)

3.2.2 字典的統計、合並與清空

涉及到的方法一覽表:

方法名說明len(dict)統計字典鍵值對的數量update(temp_dict)將 update_dict 字典與原字典合並,如果被合並的字典包含已經存在的鍵值對,會覆蓋原有的鍵值對clear()清空字典中的所有元素

示例代碼:

nezuko = {
"name": "祢豆子",
"age": 6,
"height": 145,
"phone": 123456789}
# 統計鍵值對個數
nezuko_count = len(nezuko)
print("字典 nezuko 鍵值對個數為: %d" % nezuko_count)
# 合並兩個字典
nezuko_new = {
"性別": "女",
"愛好": "咬竹筒",
"age": 10}
nezuko.update(nezuko_new)
print("合並後" + str(nezuko))
# 清空列表元素
nezuko.clear()
print("清空後: " + str(nezuko))

結果:

3.3 字典的迭代遍歷

在實際開發中,字典的遍歷需求並不多,因為我們無法確定字典中的每一個鍵值對保存的數據類型。

遍歷語法:

# for 循環內部使用的 key 變量 in 字典名
for k in dict:
# 具體操作
print("%s: %s" % (k, dict[k]))

示例代碼及結果:

commodities = {
"商品名稱": "洗發水",
"價格": "$8.99"}
# 遍歷
for k in commodities:
print("%s \t: %s" % (k, commodities[k]))

3.4 字典與列表綜合應用場景

  • 使用 多個鍵值對,描述一個物品的相關信息;
  • 多個字典放在一個列表中,在循環體內部針對每一個字典進行相同的處理

示例代碼與結果:
嘗試將物品信息存儲為字典,並將所有物品存儲到列表中進行遍歷修改

commodities_list = [
{
"商品名稱": "洗發水", "價格": "$8.99"},
{
"商品名稱": "耳機", "價格": "$78.99"},
{
"商品名稱": "固態硬盤", "價格": "$99.99"},
]
# 遍歷 給所有商品價格增加100 並打印
for commodity in commodities_list:
# 這裡使用了 lstrip 對字符串進行了首字符刪除 後面會講 先忽略
commodity["價格"] = "$" + str(float(commodity["價格"].lstrip("$")) + 100)
print(commodity)


寫在最後

以上便是本文的全部內容啦,後續內容將會持續免費更新,如果文章對你有所幫助,麻煩動動小手點個贊 + 關注,非常感謝 ️ ️ ️ !
如果有問題,歡迎私信或者評論區!

共勉:“你間歇性的努力和蒙混過日子,都是對之前努力的清零。”


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved