python列表、元組、字典、集合的簡單操作

来源:https://www.cnblogs.com/cgqForward/archive/2018/08/21/9484158.html
-Advertisement-
Play Games

一、列表和集合 二、字典 1 #Author:CGQ 2 #key-value 3 #版本3.6以後dica字典是有序的 4 info={ 5 '123456':"Ren Gong", 6 '123457':"Luan Gong", 7 '123458':"Xiao Gong", 8 } 9 inf ...


一、列表和集合


 1 #Author:CGQ
 2 import copy
 3 #列表
 4 '''
 5 names=["ZhangYang","XiaoHei","XiaoHei","LiSan"]
 6 print(names[0])#某一個
 7 #切片
 8 print(names[1:3])
 9 print(names[0:-1:2])#2代表步長
10 print(names[-1])
11 print(names[-2:])
12 
13 print(names[names.index("ZhangYang")])#輸出原文和位置信息
14 names.append("DaKaiZi")#追加最後
15 names.insert(1,"GuYun")#追加到某位置
16 names.extend("GuYun")#迭代添加
17 names[2] = "XieDi"#替換
18 names[:2] = "ni"
19 names[:2] = "ni43243"#迭代替換
20 names[:2] = [4,3,2,4,3]#迭代替換
21 #刪除
22 names.remove("XieDi")#按元素刪
23 del names[2]#按序號刪
24 del names#刪除names
25 names.pop(2)#按序號刪
26 n1 = names.pop(2)#刪除並返回刪除值(預設刪除最後一個)
27 names.clear()#清空
28 names.reverse()#反轉
29 names.sort()#排序(字母順序,符號》數字》大寫》小寫)
30 names.sort(reverse=True)#反向排序(字母順序,符號》數字》大寫》小寫)
31 names2=[1,2,3,4]
32 names.extend(names2)#鏈接
33 del names2#刪變數
34 '''
35 '''
36 names=["ZhangYang","XiaoHei",["CGQ","DaWang"],"XiaoHei","LiSan"]
37 #複製第一層
38 #names2=names.copy()
39 #names2=names[:]
40 #names2=list(names)
41 #names2=names#指針指向name2,沒有新建(針對列表,字元、字元串是新建【真正的複製】)
42 names2=copy.deepcopy(names)#完全複製
43 names[2][0]="cgq"
44 #print(names,names2)
45 for i in names:
46     print(i)
47 '''
48 #元組
49 # name=("LiSi","WangWu")#不能修改
50 # print(name.index("LiSi"))
51 
52 NAME = (1,2,[1,'SDFAS'],'jgjhgj')#其中列表可以修改
53 # NAME[2][1] = NAME[2][1].lower()
54 # print(NAME)
55 
56 # s = 'safsadf'
57 # s1 = '_'.join(s)#用'_'相連接,返回字元串
58 # print(s1)
59 #range   [......1,2,3........]
60 # for i in range(-20,20,2):
61 #     print(i)

 二、字典

  1 #Author:CGQ
  2 #key-value
  3 #版本3.6以後dica字典是有序的
  4 info={
  5     '123456':"Ren Gong",
  6     '123457':"Luan Gong",
  7     '123458':"Xiao Gong",
  8 }
  9 info_a={
 10     '123456':"Ren",
 11     '1':"Luan",
 12     '12':"Gong",
 13 }
 14 #b=dict.fromkeys([6,7,8],"test")#創建一個新的字典,但其中的3個test其實是一個(同一地址)
 15 #info.update(info_a)#更新info,沒有的添加,有的修改
 16 #print(info.items())#把字典轉換成列表
 17 #迴圈
 18 for i in info.values():#列印value
 19     print(i)
 20 for i in info:#高效(與for i in inf.keys()一樣)
 21     print(i,info[i])
 22 for k,v in info.items():#轉換成列表後迴圈
 23     print(k,v)
 24 '''
 25 print(info)
 26 #print(info['123456'])#提取索引為123456的數據
 27 #修改或添加
 28 info['123456']="人工"#增加(字典中無該key)
 29 info.setdefault('12345610','afasd')#增加(如果有該key,不做任何操作)
 30 info['123459']="大河"#修改(字典中有該key)
 31 #del info['123456']#刪除該條數據
 32 #info.pop("123456")#刪除該條數據,有返回值
 33 print(info.pop('1234561321','沒有此數據'))#如沒有該key,則返回'沒有此數據'
 34 #info.popitem()#隨機刪一條數據,返回刪除數據(元組)
 35 #info.clear()#清空字典
 36 print(info.get('12345'))#安全的查找方法,查不到輸出None
 37 print(info.get('12345','沒有'))#安全的查找方法,查不到輸出  沒有
 38 print(info)
 39 print('12345' in info)#找到輸出true,找不到輸出false
 40 #info.has_key("1103")2.x版本的寫法^上
 41 '''
 42 ''''''
 43 #del info#刪除變數
 44 av_catalog = {
 45     "歐美":{
 46         "www.youporn.com": ["很多免費的,世界最大的","質量一般"],
 47         "www.pornhub.com": ["很多免費的,也很大","質量比yourporn高點"],
 48         "letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"],
 49         "x-art.com":["質量很高,真的很高","全部收費,屌比請繞過"]
 50     },
 51     "日韓":{
 52         "tokyo-hot":["質量怎樣不清楚,個人已經不喜歡日韓範了","聽說是收費的"]
 53     },
 54     "大陸":{
 55         "1024":["全部免費,真好,好人一生平安","伺服器在國外,慢"]
 56     }
 57 }
 58 av_catalog["大陸"]["1024"][1]="可以在國內做鏡像"
 59 print(av_catalog.values())#列印除values所有的值
 60 print(av_catalog.keys())#列印所有的keys值
 61 print(av_catalog.items())#列印所有的keys,values值
 62 av_catalog.setdefault("臺灣",{"www":["watifak",2]})
 63 print(av_catalog)
 64 
 65 
 66 # = 賦值 == 比較值是否相等   is 比較,比較的是記憶體地址  id(記憶體地址的內容)
 67 li1 = [1,2,3]
 68 li2 = li1
 69 li3 = li2
 70 print(id(li1),id(li2))#指向同一個記憶體地址
 71 
 72 #數字,字元串 小數據池
 73 #數字的範圍 -5 -- 256
 74 #字元串:1,不能有特殊字元
 75 #        2,s(一個字元)*20 還是同一個地址,s*21以後都是兩個地址
 76 # i1 = 6
 77 # i2 = 6
 78 # print(id(i1),id(i2))#指向同一個記憶體地址
 79 # i1 = 300
 80 # i2 = 300
 81 # print(id(i1),id(i2))#指向同一個記憶體地址
 82 
 83 #剩下的 list dict tuple set
 84 # l1 = [1,]
 85 # l2 = [1,]
 86 # print(l1 is l2)#指向非同一個記憶體地址
 87 
 88 
 89 # s = 'alex'
 90 # s1 = b'alex'
 91 # print(s,type(s))
 92 # print(s1,type(s1))
 93 
 94 # s = '中國'
 95 # print(s,type(s))
 96 # s1 = b'中國'
 97 # print(s1,type(s1))
 98 
 99 s1 = 'alex'
100 # encode 編碼,如何將str --> bytes, ()
101 s11 = s1.encode('utf-8')
102 s11 = s1.encode('gbk')
103 print(s11)
104 s2 = '中國'
105 s22 = s2.encode('utf-8')
106 s22 = s2.encode('gbk')
107 print(s22)
View Code

三、集合

#Author:CGQ
'''
集合:可變的數據類型,他裡面的元素必須是不可變的數據類型,無序,不重覆。
     {}
'''
# set1 = set({1,2,3})
# set1 = {'alex','wusir','ritian','egon','barry',}
# set2 = {1,2,3,[2,3],{'name':'alex'}}  # 錯的
lieXi_1=[3,2,2,9]
lieXi_2=set([0,36,3,99])
lieXi_1=set(lieXi_1)
print(lieXi_1,type(lieXi_1))
#交集
print(lieXi_1 & lieXi_2)
print(lieXi_1.intersection(lieXi_2))
#並集
print(lieXi_1 | lieXi_2)
print(lieXi_1.union(lieXi_2))
#lieXi_1-lieXi_2(差)
print(lieXi_1 - lieXi_2)
print(lieXi_1.difference(lieXi_2))
#子集(是否包含)
print(lieXi_1.issubset(lieXi_2))
#是否被包含
print(lieXi_1.issuperset(lieXi_2))
#對稱差集(並集-交集)
print(lieXi_1 ^ lieXi_2)
print(lieXi_1.symmetric_difference(lieXi_2))


lieXi_1.add(98)#添加
lieXi_1.update([111,416])#添加多個
lieXi_1.remove(98)#刪除
print(len(lieXi_1))#長度
print(98 in lieXi_1)#測試98是否是lieXi_1的成員
#print(lieXi_1.pop())#隨機刪除並返回刪除值
print(lieXi_1.discard('KJ'))#刪除指定值,沒有返回None(不報錯),成功無提示

#{} set()
# set1.clear()
# print(set1)  # set()

# del set1#直接刪除變數
# print(set1)#已刪除此集合

#
# for i in set1:
View Code
#將集合(set)類型轉換為frozenset類型;由不可變類型轉化為可變類型
s1 = {1, 2, 3}
print(s1,type(s1))
s = frozenset(s1)
print(s,type(s))

 


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

-Advertisement-
Play Games
更多相關文章
  • 一.字元格式化輸出 占位符 %s s = string 字元串 %d d = digit 整數 %f f = float 浮點數 ''' ......'''不僅可以表示註釋多行,也可以表示列印多行。 二.str.isdigit()方法 檢查字元串是否只由數字組成 三.for迴圈 簡單的for迴圈,輸 ...
  • 一、前言 最近在做Matalb/Simulink與C/C++的混合編程,主要是完成TCP、UDP、SerialPort等常見通信方式的中間件設計,為Simulink模型提供數據採集及解析模塊。 問題在於沒有搞清楚Simulink中調用C/C++的內在機制,將測試OK的C++程式移植到mex上時,總會 ...
  • 楊輝三角有以下幾個特點 : 每個數等於它上方兩數之和。 每行數字左右對稱,由1開始逐漸變大。 第n行的數字有n項。 第n行數字和為2n-1。 第n行的m個數可表示為 C(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數。 第n行的第m個數和第n-m+1個數相等 ,為組合數性質之一。 ...
  • 規則 1. 每次移動一個盤子 2. 任何時候大盤子在下麵,小盤子在上面 方法 假設共n個盤子 當n=1時: 1. 直接把A上的一個盤子移動到C上(A C) 當n=2時: 1. 把小盤子從A放到B上(A B) 這裡開始採用參數,rsc源地址=A,dst目的地址=B 2. 把大盤子從A放到C上( A C ...
  • 應用、藍圖與視圖函數 1. 結構,如圖: 1. Flask最上層是 ,在這個核心對象上可以插入很多藍圖,這個藍圖是不能單獨存在的,必須將app作為插板插入app ,在每一個藍圖上,可以註冊很多靜態文件,視圖函數,模板 ,一個業務模塊可以做為一個藍圖,比如book,之前的book.py 放到了app/ ...
  • python多進程,多線程之鎖機制 鎖添加的原因: 在多進程/多線程同時進入臨界資源區獲取和操作共有資源時,會出現資源的爭奪而出現混亂。為了避免這種混亂現象,python提出了鎖機制 線程鎖/進程鎖的定義和運用: 創建鎖對象: lock = Lock() 鎖對象一旦創建,就可以隨時被進程或者線程調用 ...
  • 項目已提測,這兩天我們都集中精力梳理外包團隊給我司研發的這個三方支付系統的代碼邏輯。今天下午愛琴海會議室,開發組裡一同學分享他對支付結果回調的梳理成果。 支付結果回調的整體時序是:支付渠道方處理完用戶支付信息後,主動調用我方在支付發起時提供的回調地址,把支付結果推給我方,我方處理完成後,回寫字元串“ ...
  • 目錄: 一、安裝GUI工具包:EasyGui 二、導入EasyGui 三、使用EasyGui 四、修改預設設置 五、課時35課後習題及答案 *********************************** 一、安裝GUI工具包:EasyGui ************************* ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...