Python基礎_ONLINE習題集_03 數據類型

来源:https://www.cnblogs.com/liulian999/archive/2020/01/01/12130967.html
-Advertisement-
Play Games

3.1 將元組(1,2,3) 和集合{"four",5,6}合成一個列表 1 tuple,set,list = (1,2,3),{"four",5,6},[] 2 for i in tuple: 3 list.append(i) 4 for j in set: 5 list.append(j) 6 ...


3.1 將元組(1,2,3) 和集合{"four",5,6}合成一個列表

1 tuple,set,list = (1,2,3),{"four",5,6},[]
2 for i in tuple:
3     list.append(i)
4 for j in set:
5     list.append(j)
6 print(list)

3.2 將列表[3,7,0,5,1,8]中大於5元素置為0,小於5的元素置為1

1 list2 = [3,7,0,5,1,8]
2 print(list2)
3 for i in range(0,len(list2)):
4     if list2[i] >5:
5         list2[i] = 0
6     elif list2[i]<5:
7         list2[i]=1
8 print(list2)

3.3 將列表["mo","deng","ge"]和[1,2,3] 轉換成[("mo",1),("deng",2),("ge",3)]

 1 #方法一:遍歷元素法
 2 Sl1,Nl1,new_list1=["mo","deng","ge"],[1,2,3],[]
 3 for i in Sl1:
 4     for j in Nl1:
 5         if Sl1.index(i) == Nl1.index(j):
 6             new_list1.append((i,j))
 7 print("new_list1=",new_list1)
 8 
 9 #方法二:遍歷下標法
10 Sl2,Nl2,new_list2=["mo","deng","ge"],[1,2,3],[]
11 for a in range(0,len(Sl2)):
12     for b in range(0,len(Nl2)):
13         if a == b:
14             new_list2.append((Sl2[a],Nl2[b]))
15 print("new_list2=",new_list2)
16 
17 #方法三:切片組合法
18 Sl3,Nl3=["mo","deng","ge"],[1,2,3]
19 print("new_list3=",[(Sl3[0],Nl3[0]),(Sl3[1],Nl3[1]),(Sl3[2],Nl3[2])])
20 
21 #方法四:遍歷下標投機取巧法
22 Sl4,Nl4,new_list4=["mo","deng","ge"],[1,2,3],[]
23 for k in range(0,3):
24     new_list4 += [(Sl4[k],Nl4[k])]
25 print("new_list4=",new_list4)
26 #運行結果: 27 """ 28 new_list1= [('mo', 1), ('deng', 2), ('ge', 3)] 29 new_list2= [('mo', 1), ('deng', 2), ('ge', 3)] 30 new_list3= [('mo', 1), ('deng', 2), ('ge', 3)] 31 new_list4= [('mo', 1), ('deng', 2), ('ge', 3)] 32 """

3.4 若a = dict(),令 b = a,執行b.update({"x":1}),a亦改變,為何,如何避免

原因:一個變數賦給另一個變數等價於這兩個變數引用同一個地址所存儲的值

解決:重新開闢空間可以取消兩變數間的關聯(每一個表達式都會有值都會重新開闢空間,變數名所引用的值要看賦給它的是什麼)

 1 #方法一:copy()函數複製
 2 a = {1:"mo",2:"deng"}
 3 b = a.copy()
 4 b.update({"x":"/"})
 5 print(a,b)
 6 
 7 #方法二:解包賦值法
 8 a = {1:"mo",2:"deng"}
 9 b = dict()
10 b.update(a)
11 b.update({"x":"/"})
12 print(a,b)
13 
14 #運行結果:
15 """
16 {1: 'mo', 2: 'deng'} {1: 'mo', 2: 'deng', 'x': '/'}
17 {1: 'mo', 2: 'deng'} {1: 'mo', 2: 'deng', 'x': '/'}
18 """

3.5 將二維結構[['a',1],['b',2]]和(('x',3),('y',4))轉換成字典

1 #將二維結構[["a","/"],["b",2]]和(("x",3),("y",4))轉換成字典
2 list1,tuple1=[["a","/"],["b",2]],(("x",3),("y",4))
3 dict1=dict(list1)
4 dict2=dict(tuple1)
5 print(dict1,dict2)
6 #運行結果:
7 """
8 {'a': '/', 'b': 2} {'x': 3, 'y': 4}
9 """

3.6

3.7

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 原文鏈接:https://mail.qq.com/cgi-bin/readtemplate?t=safety&check=false&gourl=https%3A%2F%2Fwww.freecodecamp.org%2Fnews%2Fweb-development-2020%2F&subtempla ...
  • 安裝node.js 官網:https://nodejs.org/en/ 淘寶NPM鏡像(npm是外網,用國內代理下載安裝賊快) $ npm install -g cnpm --registry=https://registry.npm.taobao.org 全局安裝 vue-cli $ cnpm i ...
  • 複習 面向過程和麵向對象都是編程的思想, 方式不一樣 面向過程: 凡事都是親力親為, 所有的代碼都要自己寫, 每一步都要很清楚, 註重的是過程 面向對象: 執行者成為指揮者, 只要找對象, 然後讓對象做相關的事情, 註重的是結果 面向對象的特性: 封裝, 繼承, 多態 封裝;就是代碼的封裝, 把一些 ...
  • 昨天在公司寫代碼遇到了一個問題,就是在用easyUI做主從表的時候在查詢之後點擊展開的時候不能再次展開了。先說一下主從表我也是第一次用 效果如下圖: 然後點擊前面的小加號出現以下效果: 然而遇到了一個問題,那就是再查詢之後居然不能點開了。於是乎我開始從網上查找問題原因,得到瞭如下答案: 然而改成這樣 ...
  • DOM屬性 console.log(ele.attributes) 獲取ele元素的屬性集合 ele.attributes.getNamesItem(attr).nodeValue 獲取指定屬性值 ele.attributes[attr].nodeValue 獲取指定屬性值 ele.attribut ...
  • 創建節點 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" con ...
  • 本系列筆記主要基於《深入理解Java虛擬機:JVM高級特性與最佳實踐 第2版》,是這本書的讀書筆記。 垃圾收集演算法 垃圾收集演算法主要有標記 清除演算法、複製演算法、標記 整理演算法、分代收集演算法這幾種,對演算法的具體實現不做過多探究,只對他們的設計思想進行介紹。 標記 清除演算法 最基礎的演算法就是 標記 清除 ...
  • 今天躺在床上忽然想到一個問題,迭代器的代碼是如何實現的?於是乎不由自主的爬起來敲兩行代碼。 上面的代碼是java中很常見的一個迭代的功能。於是自己也想要寫一個泛型類,然後支持這種迭代的功能。於是乎寫了一個類似ArrayList的動態數組功能。 上面的代碼怎麼都沒辦法實現Iterator的功能,在id ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...