Python學習(二)操作列表

一、列表的遍歷

每個縮進的代碼行都是循環的一部分,且將針對列表中的每個值都執行一次。因此,可對列表中的每個值執行任意次數的操作。

magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)

注意:

1、遍歷的時候,后面需要加冒號;

2、遍歷下面的內容時候,至少需要一行內容,且這行內容要縮進;

# 遍歷的時候下面沒有縮進的代碼行-->會報錯
magicians = ['alice', 'david', 'carolina']
for magician in magicians:

3、縮進和不縮進的差別

3.1縮進的行–>重復執行;

magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)print(magician.title() + ", that was a great trick!")
##輸出結果為如下展示:
alice
Alice, that was a great trick!
david
David, that was a great trick!
carolina
Carolina, that was a great trick!

3.2沒縮進的行–>只執行一次(值為列表末尾的值);

遍歷完畢的時候,如果下面打印的內容沒有縮。那么只會執行一次,且值為列表末尾的值

magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)
print(magician.title() + ", that was a great trick!")#輸出結果為如下展示:
alice
david
carolina
Carolina, that was a great trick!

二、使用函數 range()

2.1規則:左包右開

#輸出1 2 3 4
for value in range(1,5):
print(value)
#輸出1 2 3 4 5
for value in range(1,6):
print(value)

2.2使用函數 range() 時,還可指定步長

語法

range(startNumber,endNumber,stepLength)
startNumber:開始的數字;
endNumber:結束的最大數字,且要比startNumber大;
stepLength:一次累加多少;

even_numbers = list(range(2,11,2))
print(even_numbers)
#輸出結果
[2, 4, 6, 8, 10]

三、對數字列表執行簡單的統計計算

>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45

四、列表解析

前面介紹的生成列表 squares 的方式包含三四行代碼,而列表解析讓你只需編寫一行代碼就能生成這樣的列表。 列表解析 將 for 循環和創建新元素的代碼合并成一行,并自動
附加新元素。面向初學者的書籍并非都會介紹列表解析,這里之所以介紹列表解析,是因為等你開始閱讀他人編寫的代碼時,很可能會遇到它們。

請注意,這里的 for 語句末尾沒有冒號。

squares = [value**2 for value in range(1,11)]
print(squares)
#輸出結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

五、切片

切片:列表的一部分;

5.1語法

[start🔚step]
start:開始截取的位置,截取的內容包含該位置。
end:結束截取的位置,截取的內容不包含該結束位置。
step:截取的步長,默認值為1。step為正的時候,代表從左到右截取。step為負的時候,從右到左反向截取
例如:
[:]:提取從開頭到結尾的整個字符串的全部內容;
[start:]:從start下標字符串開始截取,直到字符串的末尾(包含末尾字符);
[:end]:從字符串的開始字符截取,直到下標end結束(不包含這個end下標);
[start:end]:從start下標開始截取,直到下標end結束(不包含這個end下標);
[start🔚step]:從start下標字符串開始截取,直到下標end結束(不包含這個end下標),步長為step;
[::2]:每隔一個輸出內容;
[::-1]:將內容反序輸出;
[-2:-8:-1]:將從下標-2開始(包含自己),直到下標-8(不包含自己)結束內容反序輸出;
備注:反序輸出的時候start一定要在end的右邊

5.2規則:左包右開

從下標X開始,到下標Y結束,但是不包含下標Y的值

# 從下標0開始,輸出到下標3的值結束,但是不包含下標3的值
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
#輸出結果:
['charles', 'martina', 'michael']

5.3如果你沒有指定第一個索引, Python 將自動從列表開頭開始

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
#輸出結果:
['charles', 'martina', 'michael', 'florence']

5.4如果你沒有指定最后一個索引, Python 將自動到列表末尾結束

①開始的下標是正數

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
#輸出結果:
['michael', 'florence', 'eli']

②開始的下標是負數

# 輸出倒數三個值
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
#輸出結果:
['michael', 'florence', 'eli']

5.5下標都為負數

如果下標都是負數,那么最后一位的下標是從-1開始計算的

#從下標-8的地方(倒數第八個)開始,直到下標-2結束(不包含下標-2的那個值)s="歡迎大家來到我的博客學習python課程"
result=s[-8:-2]#下標-8的值是p;下標-2的值是"課",但是不包含"課"
result=s[-2:-8:-1]#下標-2的值是"課";下標-8的值p,但是不包含p;反序輸出
print(result)
# 輸出
python
課nohty

5.6遍歷切片

輸出前三個隊員的姓名

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
for player in players[:3]:print(player.title())

六、復制列表

6.1復制列表+地址不變

friend_foods = my_foods

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
# 輸出結果:
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']

6.2復制列表+地址變化

friend_foods = my_foods[:]

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
# 輸出結果:
['pizza', 'falafel', 'carrot cake', 'cannoli']
['pizza', 'falafel', 'carrot cake', 'ice cream']

總結:
1.friend_foods = my_foods
是將地址給了另外一個列表,他們都共同指向了一個相同的地址;
2.friend_foods = my_foods[:]
是將my_foods的元素都復制了一份到friend_foods 中;然后他們互相之間互不影響;

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

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

相關文章

淺析RAG技術:大語言模型的知識增強之道

淺析RAG技術:大語言模型的知識增強之道 🏠 引言:當生成遇到檢索 在人工智能領域,大型語言模型(LLMs)如GPT-4、Llama3等展現出了驚人的文本生成能力,但它們也面臨著知識滯后、事實性錯誤等挑戰。Retrieval-Augmented …

Linux Vim 編輯器的使用

Vim 編輯器的使用 一、安裝及介紹二、基礎操作三、高級功能四、配置與插件 一、安裝及介紹 Vim是一款強大且高度可定制的文本編輯器,相當于 Windows 中的記事本。具備命令、插入、底行等多種模式。它可通過簡單的鍵盤命令實現高效的文本編輯、查找替換、分屏操作等…

Windows 圖形顯示驅動開發-WDDM 2.4功能-基于 IOMMU 的 GPU 隔離(三)

幀緩沖區保留 對于必須在電源轉換期間將幀緩沖區的保留部分保存到系統內存的驅動程序,Dxgkrnl 會在適配器初始化時對所需內存進行用量認可。 如果驅動程序報告 IOMMU 隔離支持,則 Dxgkrnl 將在查詢物理適配器上限后立即調用 DXGKDDI_QUERYADAPTERINFO&a…

UML之擴展用例

UML用例建模面向業務實現或者系統功能,每一個用例實現一個完整的業務或者功能。而一個完整的用例也可能有一些不是必需的附加功能,或者在該用例已經實現后需要添加一些新功能,此時可以通過UML提供的擴展用例機制描述類似這樣的場景。 例如對…

大數據學習(95)-謂詞下推

🍋🍋大數據學習🍋🍋 🔥系列專欄: 👑哲學語錄: 用力所能及,改變世界。 💖如果覺得博主的文章還不錯的話,請點贊👍收藏??留言📝支持一…

行式存儲(Row-based Storage)與列式存儲(Column-based Storage)詳細對比

行式存儲(Row-based Storage)與列式存儲(Column-based Storage)詳細對比 1. 數據組織方式 類型行式存儲列式存儲存儲結構按行存儲數據,每條記錄的所有字段(列)連續存放(如一條訂單的…

Seg-Zero:通過認知強化實現的推理鏈引導分割

文章目錄 速覽摘要1. 引言2. 相關工作2.1. 大模型中的推理能力2.2. 結合推理的語義分割2.3. 用于分割任務的 MLLMs 3. 方法3.1. 流程建模(Pipeline Formulation)3.2. Seg-Zero 模型3.3. 獎勵函數(Reward Functions)3.4. 訓練&…

win server2022 限制共享文件夾d

點擊配額管理中的配額 然后創建配額 導入要配額的文件即可 然后確定即可

Docker容器部署Java項目(詳細版)

🤟致敬讀者 🟩感謝閱讀🟦笑口常開🟪生日快樂?早點睡覺 📘博主相關 🟧博主信息🟨博客首頁🟫專欄推薦🟥活動信息 文章目錄 Docker容器部署Java項目1. 環境及準備2. 項目…

C語言深度解析:從零到系統級開發的完整指南

一、C語言的核心特性與優勢 1. 高效性與直接硬件控制 C語言通過編譯為機器碼的特性,成為系統級開發的首選語言。例如,Linux內核通過C語言直接操作內存和硬件寄存器,實現高效進程調度。 關鍵點: malloc/free直接管理內存&#…

Pytorch實現之基于GAN+序列后向選擇的情緒識別增強方法

簡介 簡介:在WGAN-GP+CGAN的基礎上利用了序列后向選擇方法來挑選優質樣本補充到訓練集當中,豐富訓練數據集。 論文題目:基于生成對抗網絡的情緒識別數據增強方法 期刊:傳感技術學報 摘要:使用深度學習方法構建高準確率的情緒識別模型需要大量的情緒腦電數據。 生成對抗…

軟件工程面試題(十九)

1、十六進制的216轉換十進制是多少: 216是16進制,轉10進制: =2*16^2+1*16^1+6*16^0 =512+16+6 =536 2、Java中的XML解析方式: dom和jdom解析 Java中處理XML文檔的標準API有兩種,即XML的簡單API(SAX,Simple API for XML)和文檔對象模型(DOM,…

大模型AI Agent的工作原理與安全挑戰

大模型AI Agent的工作原理與安全挑戰 0x00 引言 智能體(AI Agent)作為大語言模型技術(LLM)的具體應用形式,突破了傳統語言模型僅限于文字輸入與輸出的局限性。其通過感知環境、規劃決策及執行行動的閉環機制&#xf…

膩子刮的遍數越多越好?刮的越厚墻面越平?

很多業主對刮膩子存在誤區,感覺膩子刮的越厚越好,遍數越多越好。同時認為膩子有找平的作用,感覺墻面不平,就是膩子刮的不行。 有一位業主給我留言,說家里的膩子刮了兩遍,然后油工師傅就開始打磨刷漆了&…

「深入解析 Chromium Message Pump:消息循環的核心驅動」

MessagePump 是 Chromium 中 消息循環(Message Loop) 的核心組件之一,負責在不同平臺上管理和分發消息、事件,并協調任務調度。 在瀏覽器這樣的 GUI 應用中,事件循環(Event Loop)是非常重要的&…

3d pose 指標和數據集

目錄 3D姿態估計、3維重建指標: 數據集 EHF數據集 SMPL-X 3D姿態估計、3維重建指標: MVE、PMVE 和 p-MPJPE 都是用于評估3D姿態估計、三維重建等任務中預測結果與真實數據之間誤差的指標。 MVE (Mean Vertex Error):是指模型重建過程中每個頂點的預測位置與真實位置之間…

大智慧大數據面試題及參考答案

目錄 MySQL 的事務隔離級別是什么? MySQL 的覆蓋索引是怎樣的? MySQL 常用的存儲引擎有哪些,它們之間的區別是什么? 在 MySQL 中,如果讀取很大的數據集,同時進行一邊 select 一邊寫入操作,結果會怎樣? 當 ES 出現分詞錯誤的情況時,應該如何處理? Kafka 如何保證…

微服務的簡單認識

目錄 一、微服務架構簡介 二、微服務架構風格和分布式系統架構的關系 三、微服務組成 一、微服務架構簡介 微服務是一種構建分布式系統的架構風格,它將一個大型的應用程序拆分成多個小型的、獨立部署的服務單元,每個服務單元都專注于特定的業務功能,并通過輕量級的通信機…

Spring的 @Conditional @ConditionalOnProperty 注解 筆記250330

Spring的 Conditional ConditionalOnProperty 注解 Spring 的 Conditional 與 ConditionalOnProperty 注解詳解 在 Spring 框架中,Conditional 和 ConditionalOnProperty 是用于動態控制 Bean 注冊的重要注解。雖然它們都服務于條件化配置,但定位和使用…

電路學習——MOS柵極驅動電阻取值(2025.03.30)

參考鏈接1: 驅動芯片的驅動電流的選型和計算 參考鏈接2: NMOS柵極驅動電阻Rg阻值和功率的計算,NMOS柵極驅動電阻Rg的作用,如何防止NMOS誤開通 單片機直接驅動NMOS的方法 RLC諧振電路 智能車BLDC 在此感謝各位前輩大佬的總結,寫這個只是為了記…