Chapter 03 復合數據類型-1

1.列表

Python內置的一種有序、可變的序列數據類型;

列表的定義:

[ ]括起來的逗號分隔的多個元素組成的序列

列表對象的創建:

(1)直接賦值=

>>> list1 = []#創建一個空列表賦值給list1
>>> list2 = [1,2,3,4,5]#創建一個元素為整數的列表對象list2
>>> list3 = [‘Python’,[6,6,6],5.13]#創建元素為字符串、列表的對象list3;
>>> list4 = [['喬峰','M',35],['東方不敗','F',36]] #元素的數據類型可以各不相同

(2)list()函數

list()函數可將可迭代對象的數據轉換為列表,如字符串、元組、range對象等
>>> x = list() # 創建一個空列表[ ]
>>> y = list((1,2,3,4,5)) # y的值為 [1, 2, 3, 4, 5]
>>> z = list(range(5)) # z的值為 [0, 1, 2, 3, 4]
>>> s = list(‘Python’) # s的結果為['P', 'y', 't', 'h', 'o', 'n']

Tips:append()和extend()方法屬原地操作,不改變列表在內存的起始地址

列表的主要操作:

元素的、刪、改、查

增加列表元素:列表元素增加或刪除時,列表對象自動進行擴展或收縮內存。

運算符“+” ,不建議!

>>> l1 = [1,2,3]
>>> l1 = l1+[10] #創建新列表,非在l1后增加元素
>>> l1 #還記得基于值的內存管理方式嗎?
[1, 2, 3, 10]

列表對象的append()方法

append()方法在列表尾部增加元素,類型任意
>>> x = [ ] #append()方法只能有一個參數
>>> x.append(‘喬峰’) # 增加字符串元素
>>> x.append([1999,7,7]) # ['喬峰', [1999, 7, 7]]

列表對象的extend()方法

extend()方法將另一個迭代對象的所有元
素添加至該列表對象尾部
>>> x.extend(['M',35])
>>> x
['喬峰', [1999, 7, 7], 'M', 35]

增加列表元素:列表元素增加或刪除時,列表對象自動進行擴展或收縮內存。

列表對象的insert()方法:涉及插入位置之后所有元素的移動,影響速度;

insert()方法將元素添加至列表的指定位置
>>> l1 = [1,2,4,5]
>>> l1.insert(2,3)# 在下標為2的位置插入元素3
>>> x
[1,2,3,4,5]
>>> x.insert(2,[2.5,2.6])
>>> x
[1, 2, [2.5,2.6], 3, 4, 5]

乘法*擴展列表對象。

*復制列表元素,生成一個新列表
>>> x = [1,2,3]*3
>>> x
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> y = [1,[2,3]]*2
>>> y
[1, [2, 3], 1, [2, 3]]

列表的主要操作:元素的增、、改、查

刪除列表元素:

del命令

del命令可以刪除列表元素,也可刪除整個列表對象
>>> x = ['喬峰', [1999, 7, 7], 'M', 35]
>>> del x[1] #刪除下標索引為1的元素:[1999, 7, 7]
>>> del x #刪除整個列表

列表對象的pop()方法

pop()方法刪除并返回指定(默認為最后一個)位置
上的元素,若位置索引超出范圍則拋出異常。
>>> x = ['喬峰', [1999, 7, 7], 'M', 35]
>>> age = x.pop() # ['喬峰', [1999, 7, 7], 'M']
>>> birth = x.pop(1) # ['喬峰', 'M']

列表對象的remove()方法

remove()方法刪除首次出現的指定元素,若
列表中不存在指定元素,則拋出異常。
>>> birth.remove(7)
>>> birth
[1999, 7]

列表的主要操作:元素的增、刪、改、

獲取列表元素:

下標索引的方式訪問單個元素;

切片方式:

Object [ start?:?end?:?step ]????????????????????????????????????????IndexError: list index out of range

>>> x = ['喬峰', [1999, 7, 7], 'M', 35]
>>> name = x[0] # name值為:'喬峰' >>>> x[-1] = 40
>>> x
['喬峰', [1999, 7, 7], 'M', 40]

列表、元組和字符串均支持雙向索引

切片詳解????????????????????????

?適用于可用于列表、元組、字符串、range對象等

Object [ start?:?end?:?step ],切片操作不會因為下標越界而拋出異常,代碼更健壯

>>> aList = [1, 2 3, 4, 5, 6, 7, 8, 9, 10]
>>> aList[ : : ] #返回包含所有元素的新列表
>>> aList[::-1] #逆序的所有元素
>>> aList[::2] #偶數位置,隔一個取一個
>>> aList[1::2] #奇數位置,隔一個取一個
>>> aList[3::] #從下標3開始的所有元素
>>> aList[3:6] #下標在[3, 6)之間的所有元素
>>> aList[0:100] #前100個元素,下標越界,自動截斷
>>> aList[100:] #下標100之后的所有元素,越界,自動截斷,返回空列表[ ]

列表的主要操作:元素的增、刪、改、

列表相關查詢:

(1)index()方法獲取指定元素首次出現的下標

(2)count()方法統計指定元素在列表對象中出現的次數

(3)“in”關鍵字來判斷一個值是否存在于列表中,返回結果為“True”或“False”

>>> x= ['zhang','xu','喬峰']
>>> x.index('喬峰’)
2

列表的主要操作:元素的增、刪、、查

基于下標索引和切片,可直接使用賦值語句修改列表元素值

>>> x = ['喬峰', [1999, 7, 7], 'M', 35, 1.83]
>>> x[-2] = 40 #修改年齡為40,結果為['喬峰', [1999, 7, 7], 'M', 40, 1.83]
>>> x[:2] = [‘東方’,[1966,6,6]] #替換前兩個元素,結果為['東方', [1980, 6, 6], 'M', 40, 1.83]
>>> x[:2:-1] = [1.75,54] #逆序替換后兩個元素!結果為['東方', [1980, 6, 6], 'M', 54, 1.75]
>>> x[1:3] = [ ] #刪除下標1到3的3個元素,結果為[‘東方', 54,1.75]
>>> del x[::2] #刪除下標位置為偶數的元素,結果為[54]

與列表統計或操作相關的其他內置函數和列表方法

編寫.py代碼,實現以下功能:

1.石頭、剪刀、布人機大戰游戲

人類通過輸入1,2,3分別代表出石頭、剪刀和布;

計算機隨機出石頭、剪刀和布手勢;

判斷誰贏了并給出結果。

Tips:

可將石頭、剪刀、布放在一個列表中;

可將所有人勝的情況列舉出并放在一個列表中,即當人出石頭、剪刀、布而計算機出剪刀、

布和石頭時,人贏;不在上述三種情況的,機器贏。

使用random庫進行隨機操作。

編寫.py代碼,實現以下功能:

模擬用戶登錄系統和相關操作:

1. 建立用戶名列表user,用戶包括:admin, root, guest

2. 建立用戶的密碼列表pwd,對應密碼為:admin, 123, 456

3. 輸入一個用戶名,如果存在該用戶,則繼續輸入密碼;如果不存在該用

戶,則顯示:該用戶不存在。密碼正確,顯示‘登錄成功’;密碼不正確,提

示密碼錯誤;[登錄成功后,可修改密碼]。

4. root用戶登錄成功后,可以對用戶增、刪。

列表推導式(解析式)?????????list comprehension

優雅神奇的列表生成方式,適用于字典、集合等可迭代結構

將for循環壓縮成一行代碼,生成列表、字典或集合等可迭代數據結構(iterables)

???????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64137.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64137.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64137.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【后端】LNMP環境搭建

長期更新各種好文,建議關注收藏! 本文近期更新完畢。 LNMPlinuxnginxmysqlphp 需要的資源 linux服務器 web服務軟件nginx 對應的語言編譯器代碼文件 數據庫mysql安裝 tar.gz包或者命令行安裝 進入root: sodu 或su mkdir path/{server,soft}…

基于PyQt5的UI界面開發——多界面切換

介紹 最初,因為課設的緣故,我只是想做一個通過按鍵進行切面切換而已,但是我看網上資料里面僅是語焉不詳,讓我困惑的很,但后面我通過摸索才發現這件事實在是太簡單了,因此我想要記錄下來。 本博客將介紹如…

操作002:HelloWorld

文章目錄 操作002:HelloWorld一、目標二、具體操作1、創建Java工程①消息發送端(生產者)②消息接收端(消費者)③添加依賴 2、發送消息①Java代碼②查看效果 3、接收消息①Java代碼②控制臺打印③查看后臺管理界面 操作…

機器視覺檢測相機基礎知識 | 顏色 | 光源 | 鏡頭 | 分辨率 / 精度 / 公差

注:本文為 “keyence 視覺沙龍中機器視覺檢測基礎知識” 文章合輯。 機器視覺檢測基礎知識(一)顏色篇 視覺檢測硬件構成的基本部分包括:處理器、相機、鏡頭、光源。 其中,和光源相關的最重要的兩個參數就是光源顏色和…

【每日學點鴻蒙知識】壓力測試、Web組件攔截器、nfc開關狀態、定位能力、rn支持的三方庫

1、HarmonyOS的wukong 支持運行python腳本進行壓力或者常規測試嗎? Python腳本調用hdc命令,執行hdc shell wukong XXXwukong只支持穩定性壓測,普通測試建議使用arkxtest測試框架 2、Web組件頁面內跳轉時自定義WebHeader問題? 如…

GDPU Vue前端框架開發 期末賽道出勇士篇(更新ing)

記住,年底陪你跨年的不會僅是方便面跟你的閨蜜,還有孑的筆記。 選擇題 1.下列選項用于設置Vue.js頁面視圖的元素是()。 A. Template B. script C. style D. title 2.下列選項中能夠定義Vuejs根實例對象的元素是(&…

Flutter開發HarmonyOS 鴻蒙App的好處、能力以及把Flutter項目打包成鴻蒙應用

Flutter開發HarmonyOS的好處: Flutter是谷歌公司開發的一款開源、免費的UI框架,可以讓我們快速的在Android和iOS上構建高質量App。它最大的特點就是跨平臺、以及高性能。 目前 Flutter 已經支持 iOS、Android、Web、Windows、macOS、Linux 的跨平臺開發…

Effective C++ 條款 17:以獨立語句將 `newed` 對象置入智能指針

文章目錄 條款 17:以獨立語句將 newed 對象置入智能指針核心思想示例代碼錯誤用法分析推薦設計總結 條款 17:以獨立語句將 newed 對象置入智能指針 核心思想 問題背景 如果在將 newed 對象傳遞給智能指針時,包含了復雜的表達式,一…

【體驗官招募】SoFlu - JavaAI 開發助手:開啟智能開發新時代

你是否有過這樣的經歷?在深夜的辦公室里,面對緊急的 Java 項目,看著厚厚的需求文檔,你是否感到無從下手? 當你嘗試理解客戶那些復雜又模糊的需求時,是否會因為要和產品經理反復溝通確認每一個細節而感到厭…

【Compose multiplatform教程07】多平臺常用組件和重要組件目錄

一、基礎交互與顯示組件 Text 查看示例 功能說明:用于在界面上顯示文本內容,支持設置字體、大小、顏色、樣式(如加粗、斜體、下劃線)等屬性,滿足不同的文本展示需求,可傳達各種信息給用戶。示例場景&#…

自學記錄HarmonyOS Next DRM API 13:構建安全的數字內容保護系統

在完成了HarmonyOS Camera API的開發之后,我開始關注更復雜的系統級功能。在瀏覽HarmonyOS Next文檔時,我發現了一個非常有趣的領域:數字版權管理(DRM)。最新的DRM API 13提供了強大的工具,用于保護數字內容…

【HENU】河南大學計院2024 操作系統 簡答題復習

和光同塵_我的個人主頁 一直游到海水變藍。 單項選擇 15x2 30 判斷 10x1 10 簡答 3x10 30 綜合 3x10 30 簡答題 簡述操作系統的四個基本特征。 并發性 共享性 虛擬性 異步性 并發性是最重要特性,其它三種特性以此為前提。 并發 并發(Concurrence)&#…

基于Android的校園導航系統

基于Android的校園導航系統是一種專為校園環境設計的移動應用程序,旨在幫助學生、教職工及訪客快速、準確地找到校園內的目的地。以下是對基于Android的校園導航系統的詳細介紹: 一、系統概述 基于Android的校園導航系統通常包括客戶端(移動…

GEE錯誤——PCA系數變換的時候出現的錯誤

目錄 錯誤提示1 錯誤提示2 原始的教程鏈接: 錯誤代碼 修正后的代碼 結果 錯誤提示1 這個是因為原始GEE教程中給的讓我們填入需要進行計算的波段名稱,而且是以list的形式傳入。 錯誤提示2 這里我們雖然傳入了正確的波段名稱,但是發現要…

C#代碼實現把中文錄音文件(.mp3 .wav)轉為文本文字內容

我們有一個中文錄音文件.mp3格式或者是.wav格式,如果我們想要提取錄音文件中的文字內容,我們可以采用以下方法,不需要使用Azure Speech API 密鑰注冊通過離線的方式實現。 1.首先我們先在NuGet中下載兩個包 NAudio 2.2.1、Whisper.net 1.7.3…

【py腳本+logstash+es實現自動化檢測工具】

概述 有時候,我們會遇到需要查看服務器的網絡連接或者內存或者其他指標是否有超時,但是每次需要登錄到服務器查看會很不方便,所以我們可以設置一個自動腳本化工具自動幫助我們查看,下面我做了一個demo在windows上面。 一、py腳本 import s…

計算機操作系統與安全復習筆記

1 緒論 操作系統目標: 方便性; 有效性; 可擴充性; 開放性. 作用: 用戶與計算機硬件系統之間的接口; 計算機資源的管理者; 實現了對計算機資源的抽象; 計算機工作流程的組織者. 多道程序設計: 內存中同時存放若干個作業, 使其共享系統資源且同時運行; 單處理機環境下宏觀上并行…

qt5.12.11+msvc編譯器編譯qoci驅動

1.之前編譯過minGW編譯器編譯qoci驅動,很順利就完成了,文章地址:minGW編譯qoci驅動詳解,今天按照之前的步驟使用msvc編譯器進行編譯,直接就報錯了: 查了些資料,發現兩個編譯器在編譯時,pro文件中引用的庫不一樣,下面是msvc編譯器引用的庫,其中編譯引用的庫我這里安裝…

Java爬蟲實戰:深度解析VIP商品詳情獲取技術

在數字化時代,數據的價值不言而喻。對于電商平臺而言,掌握VIP商品的詳細信息是提升服務質量、優化用戶體驗的關鍵。然而,這些信息往往被復雜的網頁結構和反爬蟲策略所保護。本文將帶你深入了解如何使用Java編寫爬蟲,以安全、高效地…

校史館云展廳適合遠程教學嗎?

隨著信息技術的飛速發展,遠程教學已經成為教育領域的一個重要趨勢。 校史館作為學校文化傳承的重要場所,承載著豐富的歷史信息和教育資源。 那么,將校史館搬到云端,構建云展廳,是否適合遠程教學呢? 下面…