python 知識點累積

.items()

tinydict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}print (tinydict.items())

運行結果

dict_items([('Google', 'www.google.com'), ('Runoob', 'www.runoob.com'), ('taobao', 'www.taobao.com')])

返回的?dict_items([...])?是一個字典項的視圖對象,它包含了字典中所有的(鍵,值)對。

dict_items?是一個特殊的視圖對象,

如何正確理解和使用?dict.items()?方法的示例:

tinydict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}  # 打印字典項的視圖對象  
print(tinydict.items())  
# 輸出: dict_items([('Google', 'www.google.com'), ('Runoob', 'www.runoob.com'), ('taobao', 'www.taobao.com')])  # 如果你想遍歷這些鍵值對,可以這樣做:  
for key, value in tinydict.items():  print(key, value)  
# 輸出:  
# Google www.google.com  
# Runoob www.runoob.com  
# taobao www.taobao.com
視圖對象中() 和[]的意義

在Python中,當你看到類似于dict_items([...])這樣的輸出時,這里的()[]并不代表傳統意義上的元組(tuple)或列表(list),而是用來表示這是一個視圖對象(view object)的上下文或格式。不過,這里實際上有一個小小的誤導,因為dict_items通常不會直接顯示為dict_items([]),特別是當字典不為空時。

視圖對象

在Python的字典(dict)中,.items(),?.keys(), 和?.values()?方法都返回視圖對象,而不是列表、元組或其他容器類型。這些視圖對象提供了字典內容的動態視圖,意味著它們反映了字典的當前狀態,并且任何對字典的非就地(non-in-place)修改都會反映在視圖對象上。但是,視圖對象本身并不支持索引操作(如使用[]),盡管它們看起來有點像是可迭代的列表或元組。

() 和 [] 在這里的含義
  • ():在dict_items(...)中,()并不表示這是一個元組。這里的()更多是用于格式化或描述性的目的,表明dict_items后面跟著的是一個動態的、可迭代的對象,而不是一個具體的值或容器。然而,實際上你并不會在dict_items的輸出中看到(),除非是在某種特定的字符串表示或文檔描述中。

  • []:在描述或嘗試表示一個空的視圖對象時,可能會看到dict_items([])這樣的表述,但這實際上是不準確的。因為dict_items對象并不是列表,即使它們看起來像是一個空的列表表示([])。當字典為空時,更準確的表示應該是類似于dict_items([])的文本(盡管這仍然不是標準輸出),但實際上你看到的更可能是沒有包含任何元素的dict_items對象的表示,它可能只是簡單地顯示為一個空的視圖對象,而不包含任何[]

正確的理解

  • 當你調用d.items()時,你應該理解為一個動態的、可迭代的對象被返回了,它包含了字典d中所有的(鍵,值)對。
  • 你可以使用這個對象來遍歷字典中的鍵值對,但不能像操作列表或元組那樣對其進行索引或切片。
  • 視圖對象反映了字典的當前狀態,任何對字典的非就地修改都會立即反映在這些視圖對象上。

示例

my_dict = {'a': 1, 'b': 2}  
items_view = my_dict.items()  # 遍歷視圖對象  
for key, value in items_view:  print(key, value)  # 刪除字典中的一個項  
del my_dict['a']  # 再次遍歷視圖對象(注意:這里的items_view仍然有效,因為它反映了字典的當前狀態)  
for key, value in items_view:  print(key, value)  # 輸出將不包括已刪除的項

在這個例子中,items_view是一個視圖對象,它動態地反映了my_dict的內容。當你從字典中刪除一個項時,這個變化也會反映在視圖對象中。

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

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

相關文章

【持續集成_05課_Linux部署SonarQube及結合開發項目部署】

一、Linux下安裝SonarQube 1、安裝sonarQube 前置條件:sonarQube不能使用root賬號進行啟動,所以需要創建普通用戶及 其用戶組 1)創建組 2)添加用戶、組名、密碼 3)CMD上傳qube文件-不能傳到home路徑下哦 4&#xff09…

王牌站士Ⅳ--矢量數據庫對 RAG 效率的影響

前言 近年來,檢索增強生成 (RAG) 模型越來越受歡迎。RAG 模型利用大型神經網絡以及外部知識源的檢索機制。這使得模型擁有的知識比其內部存儲的更多,從而使其能夠為廣泛的主題和領域生成高質量的輸出。 影響 RAG 模型性能的關鍵因素之一是從外部源檢索相…

C++之STL簡介

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、STL是什么二、STL的發展歷史三、STL的組成部分3.1 容器(Containers)3.2 迭代器(Iterators)3.3 算法&#xf…

【啟明智顯分享】ESP32-S3 4.3寸觸摸串口屏HMI應用方案:WIFI/藍牙無線通信助力烘干設備實現遠程遙控

技術不斷進步,人們對烘干設備的美觀度、功能多樣性提出更高要求,傳統的數碼管顯示、按鍵式控制已經無法滿足客戶的需求。用智能屏替代傳統的數碼管可以很好的解決這個問題,為用戶帶來更好的人機交互體驗。 基于此,啟明智顯提出將樂…

solidity實戰練習2--ERC20實現

//SPDX-License-Identifier:MTT pragma solidity ^0.8.24;interface erc20{function name()external view returns (string memory);//查看代幣的名稱function symbol() external view returns(string memory);//查看代幣簡稱function totalSupply()external view returns(uint…

低代碼:架起產教融合的“立交橋”

隨著信息技術的飛速發展,傳統的軟件開發模式正面臨著前所未有的挑戰。為了應對這一挑戰,低代碼平臺應運而生,其通過簡化開發流程、提高開發效率,成為了推動產業與教育深度融合的重要力量。本文將探討低代碼平臺如何架起產教融合的…

C++基礎(十八):繼承(重點)

各位看官,大家好!今天我們將探討C中的三大特性之一:繼承。繼承是一種面向對象編程的重要概念,它允許我們通過創建新的類,從而復用和擴展現有類的功能。通過繼承,我們不僅能夠提高代碼的可重用性和可維護性&…

算法刷題筆記 KMP字符串(C++實現,并給出了求next數組的獨家簡單理解方式)

文章目錄 題目描述基本思路實現代碼 題目描述 給定一個字符串S,以及一個模式串P,所有字符串中只包含大小寫英文字母以及阿拉伯數字。模式串P在字符串S中多次作為子串出現。求出模式串P在字符串S中所有出現的位置的起始下標。 輸入格式 第一行輸入整數…

docker拉取鏡像,報錯error pulling image configuration: download failed after attempts=6: dial tcp 157.240.1

error pulling image configuration: download failed after attempts6: dial tcp 157.240.10.32:443: i/o timeout docker compose pull docker pull langgenius/dify-web:0.6.13 重啟docker sudo systemctl restart dockerhttps://stackoverflow.com/questions/72353203/do…

9.5 柵格圖層符號化多波段彩色渲染

文章目錄 前言多波段彩色渲染QGis設置為多波段彩色二次開發代碼實現多波段彩色 總結 前言 介紹柵格圖層數據渲染之多波段彩色渲染說明:文章中的示例代碼均來自開源項目qgis_cpp_api_apps 多波段彩色渲染 以“3420C_2010_327_RGB_LATLNG.tif”數據為例&#xff0c…

代碼隨想錄打卡第二十一天

代碼隨想錄–二叉樹部分 day 21 二叉樹第八天 文章目錄 代碼隨想錄--二叉樹部分一、力扣669--修建二叉搜索樹二、力扣108--將有序數組轉換為二叉搜索樹三、力扣538--把二叉搜索樹轉換為累加樹 一、力扣669–修建二叉搜索樹 代碼隨想錄題目鏈接:代碼隨想錄 給你二叉…

常見條件控制算法流程圖

內容講解:流程控制[if…else…(if…elif…else…),while,for] 常見條件控制算法流程圖高清圖

新手教學系列——高效管理MongoDB數據:批量插入與更新的實戰技巧

前言 在日常開發中,MongoDB作為一種靈活高效的NoSQL數據庫,深受開發者喜愛。然而,如何高效地進行數據的批量插入和更新,卻常常讓人頭疼。今天,我們將一起探討如何使用MongoDB的bulk_write方法,簡化我們的數據管理流程,讓代碼更加簡潔高效。 常規做法:find、insertone…

Unity 之 抖音小游戲集成排行榜功能詳解

Unity 之 抖音小游戲集成排行榜功能詳解 一,前言1.1 為游戲設計利于傳播的元素?2.2 多人競技、社交傳播?二,集成說明2.1 功能介紹2.2 完整代碼2.3 效果展示三,發現的問題和迭代計劃一,前言 對于 Unity 開發者而言,在開發抖音小游戲時集成排行榜功能是提升游戲社交性和玩…

Java實戰中處理高并發的策略

引言 隨著互聯網的快速發展,高并發成為了許多應用必須面對的挑戰。Java作為一門廣泛應用于企業級開發的語言,提供了豐富的工具和技術來應對高并發問題。本文將詳細探討Java中處理高并發的幾種常見策略和技術。 1. 并發編程基礎 1.1 線程與線程池 Jav…

【TVM 教程】使用 TVM 部署框架預量化模型

本文介紹如何將深度學習框架量化的模型加載到 TVM。預量化模型的導入是 TVM 中支持的量化之一。有關 TVM 中量化的更多信息,參閱 此處。 這里演示了如何加載和運行由 PyTorch、MXNet 和 TFLite 量化的模型。加載后,可以在任何 TVM 支持的硬件上運行編譯…

【Linux】常見指令收官權限理解

tar指令 上一篇博客已經介紹了zip/unzip指令,接下來我們來看一下另一個關于壓縮和解壓的指令:tar指令tar指令:打包/解包,不打開它,直接看內容 關于tar的指令有太多了: tar [-cxtzjvf] 文件與目錄 ...…

C++運行時類型識別

目錄 C運行時類型識別A.What(什么是運行時類型識別RTTI)B.Why(為什么需要RTTI)C.dynamic_cast運算符Why(dynamic_cast運算符的作用)How(如何使用dynamic_cast運算符) D.typeid運算符…

【Scrapy】 Scrapy 爬蟲框架

準我快樂地重飾演某段美麗故事主人 飾演你舊年共尋夢的戀人 再去做沒流著情淚的伊人 假裝再有從前演過的戲份 重飾演某段美麗故事主人 飾演你舊年共尋夢的戀人 你縱是未明白仍夜深一人 穿起你那無言毛衣當跟你接近 🎵 陳慧嫻《傻女》 Scrapy 是…

各地戶外分散視頻監控點位,如何實現遠程集中實時監看?

公司業務涉及視頻監控項目承包搭建,此前某個項目需求是為某林業公司提供視頻監控解決方案,需要實現各地視頻攝像頭的集中實時監看,以防止國家儲備林的盜砍、盜伐行為。 公司原計劃采用運營商專線連接各個視頻監控點位,實現遠程視…