1. 數據組織的維度
從一個數據到一組數據
一個數據表達一個含義,一組數據表達一個或多個含義。
維度:一組數據的組織形式
上圖中右上部分是采用線性方式進行組織,右下部分是采用二維方式進行組織。
一維數據
由對等關系的有序或無序數據構成,采用線性方式組織。如:
3.1413, 3.1398, 3.1404, 3.1401, 3.1349, 3.1376
對應列表、數組和集合等概念
二維數據
由多個一維數據構成,是一維數據的組合形式。如下面的中國大學排行榜:
表格是典型的二維數據。其中,表頭是二維數據的一部分
多維數據
由一維或二維數據在新維度上擴展形成。比如中國大學排行榜,在時間維度上又分為2016年、2017年、2018年的排行榜,在時間維度的擴展就變成了多維數據。
高維數據
僅利用最基本的二元關系展示數據間的復雜結構。例如字典中的鍵值對:
{
"firstName": "Tian",
"lastName": "Song",
"address": {
"streetAddr": "中關村南大街5號",
"city": "北京市",
"zipcode": "100081"
},
"professional": ["Computer Networking", "Security"]
}
數據的操作周期
由於數據必須存在才能進行處理,所以將數據分為以下3個階段:
存儲 <-> 表示 <-> 操作
2.一維數據的表示
如果數據間有序:使用列表類型
ls = [3.1398, 3.1349, 3.1376]
列表類型可以表達一維有序數據
for循環可以遍歷數據,進而對每個數據進行處理
如果數據間無序:使用集合類型
st = {3.1398, 3.1349, 3.1376}
集合類型可以表達一維無序數據
for循環可以遍歷數據,進而對每個數據進行處理
3. 一位數據的存儲
存儲方式一:空格分隔
如:
中國 美國 日本 德國 法國 英國 意大利
使用一個或多個空格分隔進行存儲,不換行
缺點:數據中不能存在空格
存儲方式二:逗號分隔
如:
中國,美國,日本,德國,法國,英國,意大利
使用英文半角逗號分隔數據進行存儲,不換行
缺點:數據中不能有英文逗號
存儲方式三:其他方式
如:
中國$美國$日本$德國$法國$英國$意大利
使用其他符號或符號組合分隔,建議采用特殊符號
缺點:需要根據數據特點定義,通用性較差
4. 一維數據的處理
這里處理是指一維數據的存儲格式和一維數據的列表或者集合的表示方式之間的一種轉換。
存儲 <-> 表示
將存儲的數據讀入程序
將程序表示的數據寫入文件
一維數據的讀入處理
實例:從空格分隔的文件中讀入數據
中國 美國 日本 德國 法國 英國 意大利
txt = open(fname).read()
ls = txt.split()
f.close()
>>> ls
['中國', '美國', '日本', '德國', '法國', '英國', '意大利']
實例:從特殊符號分隔的文件中讀入數據
中國$美國$日本$德國$法國$英國$意大利
txt = open(fname).read()
ls = txt.split("$")
f.close()
>>> ls
['中國', '美國', '日本', '德國', '法國', '英國', '意大利']
一維數據的寫入處理
實例:采用空格分隔方式將數據寫入文件
ls = ['中國', '美國', '日本']
f = open(fname, 'w')
f.write(' '.join(ls))
f.close()
實例:采用特殊分隔方式將數據寫入文件
ls = ['中國', '美國', '日本']
f = open(fname, 'w')
f.write('$'.join(ls))
f.close()
以上內容資料均來源於中國大學MOOC網-北京理工大學Python語言程序設計課程
課程地址:https://www.icourse163.org/course/BIT-268001