初始python(二)

来源:http://www.cnblogs.com/panisme/archive/2017/12/10/8018669.html
-Advertisement-
Play Games

1. 列表list 1.1 切片# 定義一個list。list = [1, 2, 3, 4, 5] 從左往右讀取字元(預設步長為 1 )。如:list[-2:-1] # 返回一個list數據類型,[6]list[2] # 返回一個int數據類型, 3 從右往左讀取字元串(預設步長為 1 )。如:li ...


1. 列表list

1.1 切片
# 定義一個list。
list = [1, 2, 3, 4, 5]

從左往右讀取字元(預設步長為 1 )。如:
list[-2:-1]  # 返回一個list數據類型,[6]
list[2]   # 返回一個int數據類型, 3

從右往左讀取字元串(預設步長為 1 )。如:
list[-1:-2]  # 返回一個空list, []
list[-1:-2:-1] # 步長為 -1 ,[5]

1.2 內置list方法
如:a = "123"
list(a)
# 返回的是一個列表,參數可迭代對象。裡面輸出的內容保持傳入的可迭代對象的元素和順序。如果參數為空,則返回一個空列表。

1.3  xrange 和 range 的具體區別

1.3.1 xrange 的用法(僅在python2中使用):
xrange(開始, 結束, 步長)
xrange 它生成一個xrange對象。

1.3.2 比較
range:直接生成一個列表對象。 #(在python3中,range是生成一個range對象,支持切片)
xrange:生成一個xrange對象。操作數據大,每一次只返回單個元素,節省記憶體。 

1.3.3 列表推導式的應用

1) 取出1-10的所有值的平方。
[x*x for x in range(10)]  # 結果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2) 生成字元串。
['num %s' % i for i in range(10)]
# 結果:['num 0', 'num 1', 'num 2', 'num 3', 'num 4', 'num 5', 'num 6', 'num 7', 'num 8', 'num 9']

3)生成元組。
[(x,y) for x in range(2) for y in range(2)]  
# 雙重迭代列表,在以元組的形式(x,y)組合,生成一個列表,結果是:[(0, 0), (0, 1), (1, 0), (1, 1)]

4)生成字典。
dict([(x,y) for x in range(4) for y in range(3)]) 
# 第一個列表的迭代作為字典的鍵,第二個列表的迭代作為字典的值。結果為:
{0: 2, 1: 2, 2: 2, 3: 2}

3. 集合set
集合沒有順序,故不能用切片和索引操作。

3.1 創建集合。
set() :可變的
frozenset():不可變的(不能執行添加,刪除等操作)

3.2 添加操作。如:
a = set("asd")  # 結果:{'a', 'd', 's'}

add :
a.add("panisme")  #按原始字元串傳入。結果:{'panisme', 's', 'd', 'a'}

update :
a.update("panisme") #將字元串分割傳入。
#結果:{'m', 'e', 'p', 'panisme', 's', 'n', 'boy', 'i', 'd', 'a'}

3.3 刪除
remove :
a.remove("panisme")  # 結果:{'m', 'e', 'p', 's', 'n', 'boy', 'i', 'd', 'a'}

3.4 判斷成員關係
in :"a" in a  # 判斷字元"a" 是否在集合 a 裡面,返回bool值。
not in

3.5 交集, 並集, 差集

交集 :&
並集 :|
差集 :-

3.6 set去重
去除列表內容元素重覆,如:
b = [1,23,4,5,2,2,1,2]
set(b)  # 用集合去重,返回結果:{1, 2, 4, 5, 23}
list(set(b))  # 達到列表去重目的,得到列表:[1, 2, 4, 5, 23]

4. 字典
字典是無序的,它不能通過偏移來存取,只能通過鍵來存取。
組成字典的鍵必須是不可變的數據類型,比如數字,字元串,元組等。

4.1 創建字典
方法一:
{} ,如 a = {'name':'xiaoming', 'age':18}

方法二:
dict() , a = dict(name = 'xiaoming', age = 18)

4.2 添加內容
a['country'] = 'china'

4.3 修改內容
方法一:
a['name'] = 'xiaohong'
方法二:update 參數是一個字典的類型,會替換相同鍵的值。
a.update({'name':'xiaolan', 'age':22})

4.4 刪除 del, clear, pop

del a['name']  # 刪除某個鍵以及對應的值。

a.clear()  # 刪除字典的全部元素。

a.pop('age') # 刪除某個鍵以及對應的值。

4.5 keys() : 返回的是列表,裡面包含的是字典的所有鍵。

4.6 values() : 返回的是列表,裡面包含的是字典的所有值。

4.7 items :生成一個字典的容器 [()]

4.8 get : 通過特定的鍵名來查找對應的值。
a.get('22', 'abc')  
# 如果沒有找到鍵('22')所對應的值,可以在後面指定返回值('abc')

 

 

 ...


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

-Advertisement-
Play Games
更多相關文章
  • 配套詳解視頻 局部代碼塊與初始化代碼塊 面向對象-靜態代碼塊 代碼塊總結 組合關係與類的載入 靜態代碼塊及欄位初始化練習 一、什麼是代碼塊 在類中或方法當中 使用{}括起來的一段代碼 就稱它是一個代碼塊 在代碼塊當中定義的變數我們稱是局部變數,在外面是沒有辦法使用的。這裡定義的a就是一個局部變數 代 ...
  • 文件的操作 1> 此事例操作的是text文件 2> 文件的操作有讀取text內容,將內容寫入到文件中,刪除文件,創建文件 3> 新建一個控制器,名為rwfile.go.其代碼如下: 4> 新建一個filerw.html頁面作為顯示.其代碼如下: 5> 在路由器router.go中添加路由.具體代碼如 ...
  • 一直想著10號更新這邊,終於在9號晚上有了自己的博客,弄了一晚上搞定之後睡覺,轉過天來就忘了! 用的是wordpress,然後主題也是一個弄UNREAL的網友分享的,很漂亮! 以後的游戲相關的更新可能會放到那邊多一些,這邊還是代碼和生活! 這個月工作比較忙,游戲弄的少, 把按鍵檢測的流程跑通了一多半 ...
  • 單引號和雙引號: 單引號和雙引號這種情況是可以通用的;但是當兩個混在一起用的時候很容易出錯. """ """ 三個引號作用是換行並保持當前段落(所見即所得)。 ...
  • 1. 前言 HashMap是非線程安全的,在多線程訪問時沒有同步機制,併發場景下put操作可能導致同一數組下的鏈表形成閉環,get時候出現死迴圈,導致CPU利用率接近100%。 HashTable是線程安全的,使用synchronized鎖住整個table的方式來保證併發訪問下的線程安全,但效率卻比 ...
  • ...
  • 基於資料庫的自動化生成工具,根據資料庫表結構自動生成JavaBean、自動生成MyBaits的Mapper映射配置文件、自動生成資料庫設計文檔、自動生成各種SQL等。支持MySQL、Oracle、SQLServce、PostgreSQL四種資料庫,支持Window、Linux、MacBook等多個... ...
  • 1、作用域public,private,protected,以及不寫時的區別 答: 區別如下: 2、Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面) 答: 匿名的內部類是沒有名字的內部類。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...