日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

keil obj 文件 结构_【Python】数据分析前的入门教程 Python For Everybody P2:数据结构...

發布時間:2025/4/16 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keil obj 文件 结构_【Python】数据分析前的入门教程 Python For Everybody P2:数据结构... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 這是密歇根大學課程Python For Everybody總結的P2部分。課程總結P1部分的地址如下:
  • P1: 零基礎程序設計(Python 入門)

    carolinezhq:【Python】數據分析前的入門教程 Python For Everybody P1:零基礎程序設計?zhuanlan.zhihu.com

    P2: Python 數據結構

    P3: 使用 Python 訪問網絡數據

    P4: Python 數據庫開發

    P5: 畢業項目:使用Python獲取并處理數據,并用可視化方式展現數據

    2. 編程包含兩方面,一是Algorithms算法:解決問題的一系列規則/步驟;二是Data Structures數據結構:在電腦上組織數據的方式。

    P2部分的主要內容就是Python的數據結構:列表、字典與元組,以及怎么用它們來進行文件處理。P2總體邏輯結構上我動得還挺多的,歡迎小伙伴交流,點贊和收藏呀,我還會持續更新的~

    C6 String字符串

    1. str.method()字符串方法

    • 字符串方法: string library里處理字符串的一系列內置函數。
    • str.method()返回修改后的新字符串,但是并不改變原字符串
    • 查看字符串可用方法:dir(str)

    常用字符串方法

    *whitespace空白:所有不顯示的space/tab/newline

    2. 操作字符串:長找分合換

    C7 Files 文件

    1. File handle文件句柄

    • 文本文件是由行組成的,每一行結尾都有一個newline character換行符 n,n是看不見的字符,其類型為str,是一個字符而不是兩個,len("n")結果為1
    • filehandle是open()函數返回的變量,用于按行操作文件,需為filehandle命名,print(filehandle)不顯示文章實際內容
    • 可以將文件句柄視為一個字符串序列a sequence of strings,文件中每一個以“n”結尾的行都是這個序列中單獨的字符串。

    2. 按行處理文件

    • 這種處理方法將每一行當做一個str

    1) 打開文件open() 函數

    fhandle=open(filename) #或者 fhandle=open(filename,mode) # mode可省。'r'表示只讀;'w'表示編輯。不要忘記引號!

    2) 對文件進行按行打印/對行計數/查找行

    fhandle=open(filename) for line in fhandle:line=line.rstrip()statement
    • 用str.rstrip()處理多余的n:文本每一行本身后面就有一個n結尾,在打印的時候由于for循環,會在后面自動再加一個n,所以打印出的結果行中間穿插有空行。用line=line.rstrip()刪去n。這是一個非常常用的代碼

    • 在statement做文章,可以完成對問文檔按行打印/對行計數/查找行(可能會用到count=count+1計數;str.startswith()篩選行、continue跳過不需要的行、用in查找包含某字符串的行等)

    3. 把文件視為一整個字符串進行處理

    • 這種方法將整個file當做一個str(newline和其他符號也包括在內),因此不適用于過大的文件;如果文件過大,如幾百萬行,還是按行讀比較好

    1)讀取文件filehandle.read()方法

    fhandle=open(filename) strname =fhandle.read() statement

    2) 利用statement完成按字符打印/文本字符計數/查找字符(和C6對str的操作一致)

    • 按字符打印:print(strname)
    • 文本字符計數:直接用len(strname)計數文件有多少字符(這樣會計入所有的字符,比如n)。
    • 查找字符:切片。print(strname[位置1:位置2])打印切片(實際上位置1、2并不好找)

    C8 List列表

    1. 列表

    1) list有序、可變mutable

    • 形式: 中括號+逗號 listname=[a,b,c]
    • 列表里的元素可以是Python里的任何object對象,甚至是其他列表;列表可以為空[]
    • 字符串immutable不可變,不能改變字符串的內容,若需改動,需重新賦值;列表mutable可變,用索引操作符可以改變列表里的元素。
    #創建list listname=list() #或 listname=[]#修改列表元素 list[位置]=newobj

    2)range(n) 返回由0到n-1的整數數字構成的迭代對象

    • Python 3中range(n)函數返回迭代對象range(0,n)而不是列表;把迭代對象放在像list這樣的迭代器里面,才能成為列表
    print(range(5)) #range(0,5) print(list(range(5))) #[0,1,2,3,4]

    3) list與for循環

    for obj in list:statement #或者 for i in range(len(list)):statement

    2. 列表函數及list.method()列表方法

    1)針對list的內置函數:

    • min(listname)/max(listname)/sum(listname)

    求平均數時,循環的兩種寫法,右邊在計算之前要把所有數據存起來,更占內存。

    2)list.method()列表方法

    • 查看列表可用方法:dir(list)

    常用列表方法

    list.append(obj) 在列表末尾添加元素

    • 可添加各種數據類型/數據結構,但是一次只能添加一個元素(列表實參)
    • 字符串記得加引號
    • 注意:給列表添加元素時,list=list.append(obj)是錯誤的,會返回None;list.append(obj)就可以直接改動列表本身,print(list)直接就是新列表。相比之下,由于str不可變,str.method()不改變原有字符串,需要用賦值的方式str=str.method()替換舊變量才能起到改變的效果。

    3.操作列表:長找分合換

    4.str轉list:str.split()方法

    listname=list() listname=str.split() #默認分隔符為whitespace(space/tab/newline)#或者自己定義分隔符delimiter是什么 listname=list() listname=str.split(delimiter)

    實例:對于一個長字符,想取出其中的一段字符串

    • 法1:find找出首尾位置1、2;str[位置1,位置2]切片
    • 法2:str.split()利用特殊分隔符str轉list;list[位置]索引

    C9 Dictionary字典

    1.字典dictionary:python最強大collection

    • 存在于很多語言中,只是名字不一樣。如perl/php: associative arrays關聯數組。字典可改,無序,靠key進行索引。
    • 字典的組成Dictionary Literals(Constants):curly braces花括號+a list of keys: values pairs。基本形式dictname={key1: value1,key2: value2}。

    創建空字典

    dictname=dict() #或者 dictname={}

    創建字典

    dictname={key1: value1,key2: value2,…} #或者 dictname[key1]=value1 dictname[key2]=value2 …

    向字典里添加元素

    dictname[newkey]=newvalue #如果是寫了已經有的key,就變成修改該key的鍵值了
    • 字典里的1)value鍵值不需要唯一;而鍵必須保持唯一,如果同一字典內添加的鍵出現了重復,后面的鍵值會替換前面的鍵值,最終只保留最后一個鍵值;2)值可以取任何數據類型;但鍵必須是不可變的,如字符串,數字或元組,鍵不能取列表。

    2. 常用dict.method()字典方法

    3.操作字典:長找換

    4. 實例:統計文件中每個詞出現的頻數

    1)用dic[obj]=dic.get(obj,0)+1一次性完成計數和賦值(常用idiom)

    dic=dict() for obj in list:dic[obj]=dic.get(obj,0)+1 print(dic) #注意:由于字典是無序的,所以最終統計出來的詞頻也是無序的。

    2)實例:統計文件中出現次數最多的詞及其頻數(C10利用元組的比較來為無序的字典排序,藍色部分會更加精簡)

    C10 Tuples元組

    1. 定義

    • Tuples元組有序不可更改。基本形式是圓括號+逗號隔開,
    tuplename=(obj1, obj2, obj3…)
    • tuples and assignment元組可以同時給多個對象賦值(注意賦值之后元組不能改!)。可以把元組放在賦值符號的左邊(python 特別好的功能),甚至可以省略括號。下面例子要保證賦值左右元素數量相等
    # 元組可以同時給多個對象賦值 a,b,c,d=(2,3,4,5) print(c) #4 #2,3,4,5直接就一對一賦值給了a,b,c,d
    • tuples的出現是為了提升效率,它們儲存空間小,訪問速度快。如果只是想儲存一個list,看一下丟掉,用tuple更好。

    2. 操作元組

    3. 利用元組的可比性給字典里的元素排序

    1)元組有可比性

    • 從左邊開始,只要有一對對應位置的元素滿足條件,就返回True,后面的元素根本不比較。如果第一對元素結果為False,就繼續比較下一對元素,以此類推,直到返回True就立刻停止比較。
    • 字符串的比較:如Sally和Sam開始Sa一樣,但是l在m前面,所以'Sally'<'Sam'。只對比到有第一個明確的答案出現就停止

    2)sorted(iretable)函數 vs. list.sort()方法

    sorted(iretable) #默認False升序 #或者 sorted(iretable,reverse=False升序/True降序)
    • sorted(iretable)函數適用于所有可迭代變量;而list.sort()方法僅使用于列表

    3) 利用tuples的可比性和sroted()函數給字典里無序的元素排序

    實例:求出文件里出現頻數前10的詞及其頻數(P2所有章節代碼綜合應用)

    • 注意top10比的是元組(value,key),和dict里面的元組中的元素順序相反

    • list comprehension列表推導式

    上面C10部分對應的代碼還有列表推導式的寫法:更短,執行起來更高效

    總結

    以上是生活随笔為你收集整理的keil obj 文件 结构_【Python】数据分析前的入门教程 Python For Everybody P2:数据结构...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。