python學習筆記(一):基礎知識點

来源:https://www.cnblogs.com/xihehe/archive/2018/02/27/8481348.html
-Advertisement-
Play Games

defaultdict函數將所有值初始化為指定類型 '' python按照引用傳遞 [1, 2, 3, 4] isinstance函數檢查對象是否為某個特定的類型 False is用來判斷兩份引用是否指向同一個對象與 == 不同 True 字元串左邊加上r表示字元應該按原本樣子解釋 e\\e str ...


  • defaultdict函數將所有值初始化為指定類型
from collections import defaultdict
a = defaultdict(int)
a[0]
''
  • python按照引用傳遞
a = [1,2,3]
b = a
a.append(4)
b
[1, 2, 3, 4]
  • isinstance函數檢查對象是否為某個特定的類型
a = 7
isinstance(a, float)
False
  • is用來判斷兩份引用是否指向同一個對象與 == 不同
a = [1,2,3]
b = a
c = list(a)
a is not c
True
  • 字元串左邊加上r表示字元應該按原本樣子解釋
s = r'e\\e'
print(s)
e\\e
  • strftime將時間轉化為字元串
  • strptime將字元串轉化為時間
from datetime import datetime
a = datetime.now()
a.strftime('%m/%d/%Y %H:%M')
'02/09/2018 21:07'
datetime.strptime('20091009', '%Y%m%d')
datetime.datetime(2009, 10, 9, 0, 0)
  • continue 進入下一個迭代
  • break 結束迴圈
  • pass 空操作

  • range可以用在for迴圈中,range始終返回迭代器

a = 0
for i in range(4):
    a += i
a
6
  • 三元表達式
x = 5
'positive' if x > 0 else 'negative'
'positive'
  • 元組拆包
tup = (1, 2, 3)
a, b, c = tup
b
2
  • count計算指定值的出現次數
a = (2,3,4,4,4,5)
a.count(4)
3
  • insert、extend、pop與remove、del
  • extend可以添加多個元素
b = ['a', 'b', 'c']
b.append('d')
b
['a', 'b', 'c', 'd']
b.pop(2)
b
['a', 'b', 'd']
b.insert(2, 'c')
b
['a', 'b', 'c', 'd']
b.remove('d')
b
['a', 'b', 'c']
b.extend(('d', 'e'))
b
['a', 'b', 'c', 'd', 'e']
del b[1]
b
  • python切片方式:數中間的空格

  • 切片第二個冒號為步長

za = [1,2,3,4,5]
za[::2]
[1, 3, 5]
za[::-1]
[5, 4, 3, 2, 1]
  • enumerate用法
aa = dict((v, i) for i, v in enumerate(b))
aa
{'e': 1, 'w': 0}
  • 排序
sorted(range(4))
[0, 1, 2, 3]
list(reversed(range(4)))
[3, 2, 1, 0]
  • zip
a = ['a','d']
b = ['w', 'e']
for i in zip(a, b):
    print(i)
('a', 'w')
('d', 'e')
c = dict(zip(range(5), reversed(range(5))))
c
{0: 4, 1: 3, 2: 2, 3: 1, 4: 0}
  • 字典的合併update()
c.update({'d' : 'ww'})
c
{0: 4, 1: 'ww', 2: 2, 3: 1, 4: 0, 5: 'ww', 'd': 'ww'}
  • lambda函數
from collections import defaultdict
count = defaultdict(lambda:4)
count['w']
4
strings = ['foo', 'card', 'bar', 'aaaa', 'abab']
strings.sort(key = lambda x : len(set(list(x))))
strings
['aaaa', 'foo', 'abab', 'bar', 'card']
  • 列表推導式
tuples = [(1,2,3), (4,5,6), (7,8,9)]
[x for tup in tuples for x in tup]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[[x for x in tup] for tup in tuples]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • 函數實際接受到的是一個元組*args,和一個字典**kwargs。
somedict = {'a' : 1, 'b' : 2}
for key in somedict:
    print(key)
a
b

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

-Advertisement-
Play Games
更多相關文章
  • 在頁面排版中,經常遇到長英文單詞溢出段落容器的情況,如何解決該問題?不讓測試妹妹來騷擾你呢?在CSS中提到單詞斷行,自然就會想到word-break和word-wrap。具體差別對比請查看演示及說明。 ...
  • 一、重構 1、重構變數 修改變數名稱,即重命名。快捷鍵 Shift + F6 ,位於 Refactor 中。 2、重構方法 可以增加變數個數。快捷鍵 Ctrl + F6 ,位於 Refactor 中。 二、抽取 1、抽取變數 抽取變數的快捷鍵 Ctrl +Alt + V,位於 Refactor 中的 ...
  • 一、前言 Python 面向對象中有繼承這個概念,初學時感覺很牛逼,裡面也有個super類,經常見到,最近做一些題才算是理解了。特地記錄分享給後來研究的小伙伴,畢竟現在小學生都開始學了(滑稽臉) 二、代碼 直接上乾貨,能把下麵一個問題全答對,後面就不用看了。 當然,直接運行就有答案了,還是要仔細想一 ...
  • 本文主要內容 字元 位元組 結構體和記憶體視圖 字元和位元組之間的轉換——編解碼器 BOM鬼符 明天繼續。。。 python高級——目錄 文中代碼均放在github上:https://github.com/ampeeg/cnblogs/tree/master/python高級 字元 此時只用記住在pyth ...
  • 原文鏈接: "Java軟體工程師技能圖譜" 最近在考慮“擁有怎樣的技能才能算一名合格的java軟體工程師呢?”這個問題。碰巧在github發現一個很棒的開源項目 "程式員技能圖譜" 。 "@Zhang Wei" 寫的 "Java Software Engineer Skill Map" 確實能解答我 ...
  • 需求:搭建SSH框架環境,使用註解進行相關的註入(實體類的註解,AOP註解、DI註入),保存用戶信息 效果: 一、導依賴包 二、項目的目錄結構 三、web.xml配置 四、applicationContext.xml配置 五、log4j.properties配置 六、頁面代碼 index.jsp s ...
  • 【software construction】第一章 軟體構造的多維視角 - 描述軟體系統的三個維度 - 元素、關係和各種視角的模式 - 不同視角間的轉換 ...
  • 編寫一個類的方法,判斷某一年是否為閏年。閏年是西曆中的名詞,能被4整除但不能被100整除,或能被400整除的年份即為閏年。 import java.util.Scanner;public class isLeapYear { public static void main(String[] args ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...