Python入门第三集——基础数据结构

上一篇我们完成了环境搭建,并且也熟悉了使用IDE来更加方便的写代码,这一篇,我们来熟悉一下python的数据结构
*目录

  1. 什么是数据结构
  2. 为什么要用数据结构
  3. python基本数据结构

1. 什么是数据结构

看一下百科上的定义:

数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。

那么也就是说,数据结构有两部分组成,一个是数据,另外一个是结构,啊,我没有在拆词啊。结构的话,就是数据之间的关系,比如说房屋的结构,就是建材之间的关系(位置)。
似乎从计算机科学的角度来说,底层的数据结构都是什么二叉树,链表,队列,FIFO什么的,真真是数据在计算机中的存储方式了,这些底层设计,是有算法支持基于数学的有效率指标的。

不过,既然我们站在高级语言的肩膀上,我们就先忽略这些细节好了,管你在计算存储器是怎么存的,我不听我不听我不听。

那么接下来我们从通俗易懂的(神经病的)层面,概述一下,什么是数据结构。

我们把数据,类比成我们的日常生活的小用品,比如手机、耳机、充电线之类的,数据结构呢,就是一个包(没错,就是包治百病的包)。包里面有大大小小的袋子,可以装不同的东西,既方便放东西(存储数据),也方便取东西(获取数据)。

所以,数据结构的价值,就是为了方便你们这些愚蠢的人类。(其实退一万步,程序本来就是为了方便人类而出现的

2. 为什么要用数据结构

貌似上面把为什么要用数据结构也说了,为什么要用,当然为了方便,你说你就不用,那也行,你说了算,谁让你是女朋友。

3. python基本数据结构

接下来就是了解一下python里面的各种包,哦不数据结构,了解它们的结构和使用场景。
(1) python的数据机构
python主要的数据结构就两个,其实大部分高级语言,常用的只有这两个,listmap,(在python里map叫dictionary,其实一样,我习惯了叫map,因为它短)。
看一下list是什么,我们看看官方的定义:

Python knows a number of compound data types, used to group together other values. The most versatile is the list, which can be written as a list of comma-separated values (items) between square brackets. Lists might contain items of different types, but usually the items all have the same type.
A mapping object maps hashable values to arbitrary objects.

列表,其实很好懂的吧,就是一串数据,感觉类比成包一定牵强了,类比成一排座位,大家随便坐成一排,按顺序排好的,它们的位置从0开始编号。老师叫人回答问题就是第一个第二个这样,约定俗成的编号规则。

map的话,也可以类比成上面的座位,只是这次的学生不一样,list中的学生没有名字,只能说第几个学生,map里面的学生是有名字的,老师直接点名叫人回答问题,不管你坐在哪里。
所以list是这样的[value1,value2,value3],map是这样{'xiaowanzi':person1,'dalianmao':person2}
(2)使用场景
那么在编程中,我们在什么情况下会用到这些数据结构呢。

  • list
    使用list通常是为了遍历里面的数据,然后做一些判断或者其他的处理。
    它里面存什么呢,随便都可以,可以存一串数字,一串网址之类。
    比如我现在要打开3个文件,文件名分别叫1.txt,2.txt,3.txt,伪代码如下:
#如果不用数据结构:
file1 = '1.txt'
open(file1)
dosomething
file2 = '2.txt'
open(file2)
dosomething
file3 = '3.txt'
open(file3)
dosomething
#是不是觉得好蠢,相似的代码在重复
#下面是使用list的代码
filelist = ['1.txt', '2.txt','3.txt']
for filename in  filelist:
    open(filename)
    dosomething
#是不是方便了很多
  • map
    map的使用,一般是把数据存到map里面,然后可以按关键字来找数据。
    比如我有一个配置文件test.config,文件内容如下:
username=root
password=12345

这个配置文件我需要在程序中读取它,得到用户名和密码,那么我们可以怎么做呢(忽略读文件这个过程,读文件就是读到内容的字符串)
我们用伪代码来表述:

#读取文件内容
content = open('test.config')
#省略字符串截取的方法
#取到了root这个username和12345这个密码
#把用户名存在了一个变量name里面
#密码存在了pwd这个变量里面

#不组装成数据结构的话,可以直接在代码里面使用name和pwd这两个变量

#如果使用map的话,怎么做呢
mymap={}
mymap['username']=name
mymap['password']=pwd
#然后我这个map就保存了这样的数据:{'username':name,'password'=pwd}(实际的内部顺序可能不是这样)
#取用户名
user = mymap['username']
#取密码
pwd = mymap['password']


可能觉得这样好像更加麻烦啊,本来读出了文件,截取了字符串,一切可以直接用了不是很方便吗,为什么要再把它装进map里面。
试想一下,如果这个配置文件有100个配置项,只一个一个操作,是不是就麻烦。而且如果你读取文件返回配置的内容的这个方法是你要提供给别人的接口,你该怎么返回?(方法只能返回一个对象哦)。你说你放在一个大list里面,然后告诉他,我的password在第98个位置,username在67个,你看他会不会骂你。

好,基本的使用场景差不多就这样。实际使用主要也就list和map,再有都是他们的变体。
要了解python的数据类型和数据结构的使用,看这个:Python的数据结构

The end.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容