分分鐘鐘學會Python - 數據類型(list、tuple)

来源:https://www.cnblogs.com/dpsy921/archive/2019/04/06/10663317.html
-Advertisement-
Play Games

第四節 數據類型(列表、元祖) 今日內容 列表 元祖 1、列表 1.格式 2.公共方法 1.len 計算長度 2.索引 輸出某一個元素 3.切片 輸出某一段元素 4.修改(字元串/數字/布爾除外) 5.步長 選取列表中第幾個元素 6.for迴圈 註意:for和while的應用場景: 有窮盡優先使用f ...


第四節 數據類型(列表、元祖)

今日內容

  • 列表

  • 元祖

1、列表

1.格式

users = ["ji",1,3,"gyhj"]

2.公共方法

  • 1.len #計算長度

    users = ["ji",1,3,"gyhj"]
    val = len(users)
    print(val)    # 3
  • 2.索引 #輸出某一個元素

    users = ["ji",1,3,"gyhj"]
    val = users[1]
    print(val)    # 1                                             
  • 3.切片 #輸出某一段元素

    users = ["ji",1,3,"gyhj"]
    val = users[0:2]
    print(val)    # "ji",1
  • 4.修改(字元串/數字/布爾除外)

    users = ["ji",1,3,"gyhj"]
    users[2] = 66
    print(users)  # ['ji', 1, 66, 'gyhj']
  • 5.步長 #選取列表中第幾個元素

    users = ["ji",1,3,"gyhj"]
    val = users[0:3:2]
    print(val)    # ['ji', 3]
  • 6.for迴圈

    users = ["ji",1,3,"gyhj"]
    for i in users:   
    print(i)  # 每個元素一次列印
    """
    users = ["ji","asdgfh","tryu","gyhj"]
    for i in users:
     # 第一次迴圈:i=“ji”
      for e in i:
      print(e)    # 列印第一個元素中每個字元
    """
    # 練習題:請通過for迴圈和數字計數器實現:users = ['李邵奇','利奇航','張三豐','李子森']
     1 qwe
     2 asd
     3 zxc
     4 rty
    # 方式一
    users = ['qwe','asd','zxc','rty']
    count = 1
    for i in users:
      print(count,i)
      count += 1
    # 方式二
    users = ['qwe','asd' ,'zxc','rty']
    users_len = len(users) # 4
    for index in range(0,users_len): # [0,1,2,3]
      print(index,users[index])

    註意:for和while的應用場景:

    • 有窮盡優先使用for,
    • 無窮盡用while

3.獨有方法

  • 1.append,在列表的最後追加一個元素

    # 示例
    users = ["sdxfc"]
    while True:
     name = input('請輸入姓名:')
     users.append(name)
     print(users) # ['sdxfc', 'sdf']
  • 2.insert #在指定索引位置進行插入元素

    users = ['qwe','asd','zxc','rty']
    users.insert(1,'zxc')
    print(users)  # ['qwe', 'zxc', 'asd', 'zxc', 'rty']
  • 3.remove # 刪除 註意:()里不加刪除內容報錯

    .pop # 刪除 註意:()里不加數字,預設刪除最後一個

    del # 刪除 註意:()里不加數字報錯

    .clear # 刪除列表裡所有元素 註意:()里不能加數字

    users = ["ji",1,3,"gyhj"]
    # 方式一
    users.remove('ji')
    print(users)  # [1, 3, 'gyhj']
    
    # 方式二
    users.pop(1)
    print(users)  #['ji', 3, 'gyhj']
    
    # 方式三
    del users[1]
    print(users)  #['ji', 3, 'gyhj']
    
    # 方式四
    users.clear()
    print(users)  # []

    註意:

    • 字元串本身不能修改或刪除【不可變類型】
    • 列表是【可變類型】
  • 4.".reverse" #反轉

    v1 = [1,2,3111,32,13]
    print(v1) # [1, 2, 3111, 32, 13]
    v1.reverse()
    print(v1) # [13, 32, 3111, 2, 1]
  • 5."sort" # 排序

    v1 = [1,2,3111,32,13]
    v1.sort(reverse=False) # 從小到大(預設)
    print(v1) # [11, 13, 22, 32, 3111]
    v1.sort(reverse=True) # 從大到小
    print(v1) # [3111, 32, 22, 13, 11]
    
    

4.總結

  • 1.增:

    • .append / .insert
  • 2.刪:

    • .remove / .pop /. clear / del users[2]
  • 3.改:

    • users[3] = "新值"
  • 4.查:

    • 索引/切片
  • 5.列表嵌套

    users = ["a",0,True,[1,2,3,"kjhg"],[4,['sdf','dfg'],5,6]]
    users[0]  # a
    users[2]  # True
    users[3][2]   # 3
    users[3][-1] # "kjhg"
    users[3][-1][-1] # 'g'
    users[3] = 666    # ['a', 0, True, 666, [4, ['sdf', 'dfg'], 5, 6]]

2、元祖

1.格式

  • users = [11,22,33] # 列表(元素可變)
  • users = (11,22,33) # 元組(元素不可變)

2、公共方法

  • 1.索引(排除:int/bool)

    users = (11,22,33)
    print(users[0])   # 11
    print(users[-1])  # 33
  • 2.切片(排除:int/bool)

    users = (11,22,33)
    print(users[0:2])
  • 3.步長(排除:int/bool)

    users = (11,22,33,"qwerty")
    print(users[0:2:2])
  • 4.for迴圈(排除:int/bool)

    users = (11,22,33,"qwerty")
    for item in users:
      print(item)
  • 5.len(排除:int/bool)

    users = (11,22,33,"qwerty")
    print(len(users))

3、獨有方法(無)

4、 特殊

  • 元組中的元素(兒子)不可被修改/刪除

    # 示例一:
    v1 = (11,22,33)
    v1[1] = 999 # 錯誤
    v1 = 999  # 正確
    # 示例二:可以嵌套
    v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3))
    # 示例三:嵌套
    v2 = [11,22,33,(11,22,33)]
    v2[-1][1] = 99 # 錯誤
    v2[-1] = 123 # 正確
    # 示例四:嵌套
    v3 = (11,[1,2,3],22,33)
    v3[1] = 666 # 錯誤
    v3[1][2] = 123

3、總結

1.列表(可變)

  • 公共
    • 索引
    • 切片
    • 步長
    • 修改
    • 刪除 del
    • for
    • len
  • 獨有
    • append
    • insert
    • pop
    • remove
    • clear
  • 列表嵌套

2.元組(不可變)

  • 公共

    • 索引
    • 切片
    • 步長
    • for
    • len
  • 獨有功能(無)

  • 元組嵌套

    # 錯誤示例
    v3 = (11,[1,2,3],22,33)
    v3[1] = 666 
    v3[1][2] = 123

4.練習題

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# 1.簡述解釋性語言和編譯型語言的區別?
"""
解釋性語言:一句一句代碼進行解釋
編譯型語言:所有代碼從頭到尾進行編譯
"""
# 2.列舉你瞭解的Python的數據類型?
"""
1.int
2.bool
3.str
4.列表
5.元組
"""
# 3.寫代碼,有如下列表,按照要求實現每一個功能。
"""
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
1.計算列表的長度並輸出
a = len(li)
print(a)
2.請通過步長獲取索引為偶數的所有值,並列印出獲取後的列表
a = li[0::2]
print(a)
3.列表中追加元素"seven",並輸出添加後的列表
li.append('seven')
print(li)
4.請在列表的第1個位置插入元素"Tony",並輸出添加後的列表
li.insert(0,"Tony")
print(li)
5.請修改列表第2個位置的元素為"Kelly",並輸出修改後的列表
li[1] = "Kelly"
print(li)
6.請將列表的第3個位置的值改成 "太白",並輸出修改後的列表
li[2] = "太白"
print(li)
7.請將列表 a=[1,"a",3,4,"heart"] 的每一個元素追加到列表li中,並輸出添加後的列表
a=[1,"a",3,4,"heart"]
li.append(a)
print(li)
8.請將字元串 s = "qwert"的每一個元素添加到列表li中,一行代碼實現,不允許迴圈添加。
print(['alex', 'WuSir', 'ritian', 'barry', 'wenzhou', 'q','w','e','r','t'])
9.請刪除列表中的元素"ritian",並輸出添加後的列表
li.pop(2)
print(li)
10.請刪除列表中的第2個元素,並輸出刪除元素後的列表
li.pop(1)
print(li)
11.請刪除列表中的第2至第4個元素,並輸出刪除元素後的列表
li.pop(1)
li.pop(1)
li.pop(1)
print(li)
# 4.請用三種方法實現字元串反轉 name = "小黑半夜三點在被窩玩憤怒的小鳥"(步長、while、for)
#方法一
name = "小黑半夜三點在被窩玩憤怒的小鳥"
a = name[::-1]
print(a)
# 方法二
name = "小黑半夜三點在被窩玩憤怒的小鳥"
name_len = int(len(name))
a = -1
b = ""
while True:
    b = name[a]
    b = b + b
    if a < -(name_len):
        break
    a = a - 1
print(b)
# 方法三
name = "小黑半夜三點在被窩玩憤怒的小鳥"
b = ""
for a in name[-1]:
    b = b + a
print(b)
"""
# 4.寫代碼,有如下列表,利用切片實現每一個功能
"""
li = [1, 3, 2, "a", 4, "b", 5,"c"]
通過對li列表的切片形成新的列表 [1,3,2]
a = li[0:3]
print(a)
通過對li列表的切片形成新的列表 ["a",4,"b"]
a = li[3:6]
print(a)
通過對li列表的切片形成新的列表  [1,2,4,5]
a = li[::2]
print(a)
通過對li列表的切片形成新的列表 [3,"a","b"]
a = li[1:-1:2]
print(a)
通過對li列表的切片形成新的列表 [3,"a","b","c"]
a = li[1::2]
print(a)
通過對li列表的切片形成新的列表  ["c"]
a = li[-1:]
print(a)
通過對li列表的切片形成新的列表 ["b","a",3]
a = li[5::-2]
print(a)
"""
# 5.請用代碼實現迴圈輸出元素和值:users = ["武沛齊","景女神","肖大俠"]
"""
0 武沛齊
1 景女神
2 肖大俠
users = ["武沛齊","景女神","肖大俠"]
count = 0
for i in users:
    print(count,i)
    count += 1
"""
# 6.請用代碼實現迴圈輸出元素和值:users = ["武沛齊","景女神","肖大俠"] ,如:
"""
1 武沛齊
2 景女神
3 肖大俠
users = ["武沛齊","景女神","肖大俠"]
count = 1
for i in users:
    print(count,i)
    count += 1
"""
# 7.寫代碼,有如下列表,按照要求實現每一個功能
"""
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
1.將列表lis中的"k"變成大寫,並列印列表。
lis[2] = 'K'
print(lis)
2.將列表中的數字3變成字元串"100"
lis[1] = "100"
print(lis)
3.將列表中的字元串"tt"變成數字 101
lis[3][2][1][0] = 101
print(lis)
4.在 "qwe"前面插入字元串:"火車頭"
lis[3].insert(0,"火車頭")
print(lis)
"""
# 8.寫代碼實現以下功能
#如有變數 googs = ['汽車','飛機','火箭'] 提示用戶可供選擇的商品:
"""
0,汽車
1,飛機
2,火箭
用戶輸入索引後,將指定商品的內容拼接列印,如:用戶輸入0,則列印 您選擇的商品是汽車。

googs = ['汽車','飛機','火箭']
count = len(googs)
for i in range(0,count):
    print(i,googs[i])   #輸出,列印
a = input("請用戶輸入:")     #請用戶輸入
a = int(a)
text = "您選擇的是:%s" %(googs[a],)
print(text)
"""
# 10.請用代碼實現
"""
li = "alex"
#利用下劃線將列表的每一個元素拼接成字元串"a_l_e_x"
a = "_".join(li)
print(a)
"""
# 11.利用for迴圈和range找出 0 ~ 100 以內所有的偶數,並追加到一個列表。
"""
a = []
for b in range(0,101):
    if b % 2 == 0:
        a.append(b)
print(a)
"""
# 12.利用for迴圈和range 找出 0 ~ 50 以內能被3整除的數,並追加到一個列表。
"""
a = []
for b in range(0,51):
    if b % 3 == 0:
        a.append(b)
print(a)
"""
# 13.利用for迴圈和range 找出 0 ~ 50 以內能被3整除的數,並插入到列表的第0個索引位置,最終結果如下:
"""
a = []
for b in range(0,51):
    if b % 3 == 0:
        a.insert(0,b)
print(a)
"""
# 14.查找列表li中的元素,移除每個元素的空格,並找出以"a"開頭,並添加到一個新列表中,最後迴圈列印這個新列表。
"""
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
c = []
for b in li: # 迴圈li裡面所有元素
    b = b.strip()   # 去除b里的空格
    if b.startswith("a") == True:
        c.append(b)
print(c)
"""
# 15.判斷是否可以實現,如果可以請寫代碼實現。
"""
li = ["alex",[11,22,(88,99,100,),33], "WuSir", ("ritian", "barry",), "wenzhou"]
- 請將 "WuSir" 修改成 "武沛齊"
li[2] = "武沛齊"
print(li)
# - 請將 ("ritian", "barry",) 修改為 ['日天','日地']
li[3] = ['日天','日地']
print(li)
- 請將 88 修改為 87
 不能
- 請將 "wenzhou" 刪除,然後再在列表第0個索引位置插入 "文周"
a = li.pop()
li.insert(0,a)
print(li)
"""

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 今天和大家分享下better-scroll這款移動端用來解決各種滾動需求的插件(目前已經支持PC) 關於其中的API大家可以去官網看下 這裡就給大家介紹幾種常用的以及需要註意的點是什麼 首先說一下better-scroll的使用註意問題吧 1、移動端 我們通常採用三段式進行佈局的 例如 <div c ...
  • 定義: 將一個類的介面轉換成客戶期望的另外一個介面(重點理解適配的這兩個字),使得介面不相容的類可以一起工作適用場景: 詳解 首先來從生活中的常見場景來看,一個電源插座輸出都是220V,而我們一些電子設備,比如手機,MP3,MP4,所需要的電壓不一樣,也不可能直接就是220接上,這就需要一個中間的轉 ...
  • 嚴重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframewor ...
  • 強制類型的轉換 規則: 1、執行算術運算時,低類型(短位元組)可以轉換為高類型(長位元組);例如: int型轉換成double型,char型轉換成int型等等。 就是用強制類型來實現。 3、強制類型轉換語法 :當大容量的變數向小的變數的類型去轉換時需要強制轉換 。 (目標類型) 值; 當我的int類型轉 ...
  • Python PIL PIL (Python Image Library) 庫是Python 語言的一個第三方庫,PIL庫支持圖像存儲、顯示和處理,能夠處理幾乎所有格式的圖片。 一、PIL庫簡介 1. PIL庫主要有2個方面的功能: (1) 圖像歸檔:對圖像進行批處理、生產圖像預覽、圖像格式轉換等。 ...
  • 還有一些其他用法 ...
  • 1 line =9 2 while line >0: 3 #print ("*") 4 tmp =line 5 while tmp >0: 6 print ("#",end="") 7 tmp-=1 8 line -=1 9 print() 10 11 first =0 12 while first ...
  • 1 截取字元串有的時候我們在頁面中不需要顯示那麼長的字元串,比如新聞標題,這樣用下麵的例子就可以自定義顯示的長度<#if title.content?length lt 8> <a href>${title.content?default("")}</a> <#else> <a href title ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...