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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

06 - 列表

發布時間:2023/12/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 06 - 列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

06 - 列表

1. 序列(sequence)

1.1基本概念

  • 序列是Python中最基本的?種數據結構。序列?于保存?組有序的數據,所有的數據在序列當中都有?個唯?的位置(索引)并且序列中的數據會按照添加的順序來分配索引
  • 數據結構指計算機中數據存儲的?式

1.2 序列的分類

  • 可變序列(序列中的元素可以改變):例如 列表(list)字典(dict)
  • 不可變序列(序列中的元素不能改變):例如 字符串(str)元組(tuple)

2. 列表(list)

  • 列表是Python中的?個對象
  • 列表的作?
    • 列表中可以保存多個有序的數據
    • 列表是?來存儲對象的對象

2.1 列表的使用

  • 列表的創建:通過[]來創建?個空列表

2.2 切片

  • 切?是指從現有列表中獲得?個?列表
  • 通過切?來獲取指定的元素
  • 語法: 列表[起始 : 結束 : 步?]
  • 通過切?獲取元素時,會包括起始位置的元素,不會包括結束位置的元素
  • 起始位置和結束位置的索引可以不寫
    • 如果省略結束位置, 則會從當前的開始位置?直截取到最后
    • 如果省略開始位置, 則會從第?個元素截取到結束的元素,但是不包括結束的元素
    • 如果開始位置和結束位置都省略, 則則會從第?個元素開始截取到最后?個元素
  • 步?表示每次獲取元素的間隔,默認是1(可以省略不寫)
  • 步?不能是0,但可以是是負數

3. 通用操作

  • 加法+ 和 乘法 *

    • 加法+可以將兩個列表拼接成?個列表
    • 乘法*可以將列表重復指定的次數 (注意2個列表不能夠做乘法,要和整數做乘 法運算)
  • in 和 not in

  • in?來檢查指定元素是否在列表當中

  • not in ?來檢查指定元素是否不在列表當中

  • len() 獲取列表中元素的個數

  • max() 獲取列表中最?值

  • min() 獲取列表中最?值

  • list.index(x[, start[, end]])

    • 第?個參數 獲取指定元素在列表中的位置
    • 第?個參數 表示查找的起始位置
    • 第三個參數 表示查找的結束位置
  • list.count(x) 統計指定元素在列表中出現的個數

4. 修改列表

  • 通過切?來修改(起始就是給切?的內容重新賦值,但是賦值的內容必須是? 個序列)
  • 當設置了步?時,序列中元素的個數必須和切?中元素的個數保持?致
  • 通過切?來刪除元素
    • del list[起始 : 結束]

    • list = []

5. 列表的方法

  • append() 像列表的最后添加?個元素

  • insert(arg1,arg2) 像列表指定位置插??個元素 參數1:要插?的位置 參數 2:要插?的元素

  • extend(iterable) 使??個新的序列來擴展當前序列(它會將該序列的中元素 添加到列表中) 參數需要傳遞?個序列

  • pop() 根據索引刪除并返回指定元素

  • remove() 刪除指定元素 (如果相同值的元素有多個,只會刪除第?個)

  • reverse() 翻轉列表

  • sort(key=None,reverse=False) ?來對列表中的元素進?排序

  • reverse: True反序;False 正序

6. 遍歷列表

6.1 for循環

  • 通過for循環來遍歷列表
語法 for 變量 in 序列(遍歷的規則): 代碼塊
  • 注意: for循環的代碼塊會執?多次,序列中有?個元素就會執??次。每執? ?次就會將序列中的?個元素賦值給變量,所以我們可以通過變量來獲取列表中的元素

6.2 range(start, stop[, step])

參數說明

  • start: 計數從 start 開始。默認是從 0 開始。例如range(5)等價于 range(0, 5);
  • stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
  • step:步?,默認為1。例如:range(0, 5) 等價于 range(0, 5, 1)
    語法
語法: for 變量 in range():代碼塊

練習

  • 1.現在有 a = [1,2,3,4,5,6] 不通過函數的形式實現列表的反轉([6,5,4,3,2,1]) 并寫出推導過程
a = [1, 2, 3, 4, 5, 6] # 使用切片,翻轉 ra = a[::-1] print(f'原列表:{a}') print(f'新列表:{ra}')

  • 2.給用戶9次機會 猜1 - 10 個數字隨機來猜數字。如果隨機的數字和用戶輸入的數字一致則表示正確,如果不一致則表示錯誤。最終結果要求用戶怎么也猜不對
import random print("***用戶有9次機會,隨機來猜1-10的數字***") for i in range(1, 10):player = int(input(f'用戶第{i}次輸入:'))computer = random.randint(1, 9)if player != computer:print(f'電腦給出:{computer} 很可惜,用戶猜錯了,還有{9-i}次機會')else:# 循環直到電腦和用戶的數不同while True:computer = random.randint(1, 9)if player != computer:print(f'電腦給出:{computer} 很可惜,用戶猜錯了,還有{9-i}次機會')break

  • 3.有兩個列表 lst1 = [11, 22, 33] lst2 = [22, 33, 44]獲取內容相同的元素
list_1 = [11, 22, 33] list_2 = [22, 33, 44] a = [] for i in list_1:# 判斷list_1是否在list_2中有相同元素if i in list_2:# 將相同的元素添加到新列表aa.append(i) print(a)
  • 4.現在有8位老師,3個辦公室,要求將8位老師隨機的分配到三個辦公室中
import randomlist_1 = ['張三', '李四', '王五', '馬六', '朱七', '方八', '徐一', '陳十'] a = [] b = [] c = []for i in list_1:# 隨機辦公室號office_1 = random.randint(1, 3)# 辦公室號分配給每個老師列表每個元素i = f'辦公室{office_1}--' + i# 將相同辦公室號的元素添加到同一列表if office_1 == 1:a.append(i)elif office_1 == 2:b.append(i)else:c.append(i)print(f'{a}\n{b}\n{c}\n')

  • 5.現在有8位老師,3個辦公室,要求將8位老師隨機的分配到三個辦公室中,要求每個辦公室至少有一個老師(如果覺得上面的題不夠寫的話,寫這個)
import randomwhile True:list_1 = ['張三', '李四', '王五', '馬六', '朱七', '方八', '徐一', '陳十']a = []b = []c = []for i in list_1:# 隨機辦公室號office_1 = random.randint(1, 3)# 將相同辦公室號的元素添加到同一列表if office_1 == 1:a.append(i)elif office_1 == 2:b.append(i)else:c.append(i)# 每個辦公室至少一位老師,因此列表a、b、c不能為空集if a != [] and b != [] and c != []:print(f'辦公室1:{a}\n辦公室2:{b}\n辦公室3:{c}')# 直到符合要求,循環結束break

總結

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

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