python123第六周 第六周 組合資料型別

2021-10-11 12:26:38 字數 3151 閱讀 2845

6.1組合型別及操作

1.集合型別的定義

集合是多個元素的無序組合

集合型別與數學中的集合概念一致

集合元素之間無序,每個元素唯一,不存在相同元素

集合元素不可更改,不能是可變資料型別

集合用大括號 {} 表示,元素間用逗號分隔

建立集合型別用 {} 或 set()

建立空集合型別,必須使用set()

2.集合操作符

3.集合處理方法

4.集合型別應用場景

>>> "p" in

true

>>> >=

false

6.2序列型別及操作

1.序列型別定義

序列是具有先後關係的一組元素

序列是一維元素向量,元素型別可以不同

類似數學元素序列: s 0 , s 1 , … , s n-1

元素間由序號引導,通過下標訪問序列的特定元素

2.序列處理函式及方法

>>> ls = ["python", 123, ".io"]

>>> ls[::-1]

['.io', 123, 'python']

>>> s = "python123.io"

>>> s[::-1]

'oi.321nohtyp'

>>> ls = ["python", 123, ".io"]

>>> len(ls)

>>> s = "python123.io"

>>> max(s)

'y'3.元組型別及操作

元組是序列型別的一種拓展

元組是一種序列型別,一旦建立就不能被修改

使用小括號 () 或 tuple() 建立,元素間用逗號 , 分隔

可以使用或不使用小括號

元組繼承序列型別的全部通用操作

元組繼承了序列型別的全部通用操作

元組因為建立後不能修改,因此沒有特殊操作

使用或不使用小括號

4.列表型別及操作

列表是序列型別的一種擴充套件,十分常用

列表是一種序列型別,建立後可以隨意被修改

使用方括號 或list() 建立,元素間用逗號 , 分隔

列表中各元素型別可以不同,無長度限制

>>> ls = ["cat", "dog", "tiger", 1024]

>>> ls[1:2] = [1, 2, 3, 4]

['cat', 1, 2, 3, 4, 'tiger', 1024]

>>> del ls[::3]

[1, 2, 4, 'tiger']

>>> ls*2

[1, 2, 4, 'tiger', 1, 2, 4, 'tiger']

5.序列型別應用場景

資料表示:元組 和 列表

元組用於元素不改變的應用場景,更多用於固定搭配場景

列表更加靈活,它是最常用的序列型別

最主要作用:表示一組有序資料,進而操作它們

6.3基本統計值計算

#calstatisticsv1.py

def getnum(): #獲取使用者不定長度的輸入

nums =

inumstr = input("請輸入數字(回車退出): ")

while inumstr != "":

inumstr = input("請輸入數字(回車退出): ")

return nums

def mean(numbers): #計算平均值

s = 0.0

for num in numbers:

s = s + num

return s / len(numbers)

def dev(numbers, mean): #計算方差

sdev = 0.0

for num in numbers:

sdev = sdev + (num - mean)**2

return pow(sdev / (len(numbers)-1), 0.5)

def median(numbers): #計算中位數

sorted(numbers)

size = len(numbers)

if size % 2 == 0:

med = (numbers[size//2-1] + numbers[size//2])/2

else:

med = numbers[size//2]

return med

n = getnum() #主體函式

m = mean(n)

print("平均值:{},方差:,中位數:{}.".format(m, dev(n,m),median(n)))

6.4字典型別及操作

1.字典型別定義

字典型別是「對映」的體現

鍵值對:鍵是資料索引的擴充套件

字典是鍵值對的集合,鍵值對之間無序

採用大括號{}和dict()建立,鍵值對用冒號: 表示

2.字典處理函式及方法

3.字典型別應用場景

對映無處不在,鍵值對無處不在

例如:統計資料出現的次數,資料是鍵,次數是值

最主要作用:表達鍵值對資料,進而操作它們

6.6文字詞頻統計

#calhamletv1.py

def gettext():

txt = open("hamlet.txt", "r").read()

txt = txt.lower()

for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_『~':

txt = txt.replace(ch, " ") #將文字中特殊字元替換為空格

return txt

hamlettxt = gettext()

words = hamlettxt.split()

counts = {}

for word in words:

counts[word] = counts.get(word,0) + 1

items = list(counts.items())

items.sort(key=lambda x:x[1], reverse=true)

for i in range(10):

word, count = items[i]

print ("".format(word, count))

Python123第六周(例項)

1,求解基本統計值 calstistics.py defgetnum 獲取多個輸入值 nums inumstr input 請輸入數字 回車退出 while inumstr eval inumstr inumstr input 請輸入數字 回車退出 此處無法忽略,否則輸入無法跳出 return nu...

Python123第六周程式設計題詳解

1,數字不同數之和 法1 number input s set number 輸入變為集合,達到資料去重的目的 sum 0ls list s 資料變為列表型別,便於索引 for i in range len ls sum sum eval ls i print sum 法2 number input...

第六周周總結

這一周,不管是生活上的還是學習上的,亦或是工作上的,都異常的忙碌,忙碌到心態會有些崩潰的地步,可能是性格原因,不願意說放棄就放棄,所以還是希望可以完成自己該做的,想做的事情。堅持不是一件容易的事情,可怕的是你都不知道自己的堅持到底對不對,不管正確與否,我都選擇,做下去。像長跑,原以為自己肯定跑不動,...