Python:组合数据类型

    引言:给出一个数字7,它是一个数据,表达一个基本含义,但在我们处理问题的时候,我们经常会遇到的不是一个数据,而是一组数据。一组数据可以表达一个或多个含义,那么怎么让程序把一组数据,当成一个数据来处理呢?或者怎么能让程序更好的组织一组数据,这就是组合数据类型需要完成的任务。

Ⅰ集合数据类型及操作

1. 定义:

①集合是多个元素的无序组合,与数学集合概念一致;

②集合元素之间无序,每个元素唯一,不存在相同元素;

③集合元素不可更改,不能是可变数据类型;

④建立集合类型用{}或set(),建立空集合用set。

e.g:

>>>B =set(“pypy123”)

>>>print(B)

>>>B ={‘p’,’y’,’3’,’1’,’2’}

2. 集合操作符:

①S | T :返回一个新集合,该集合是S和T的并集;

②S – T:返回一个集合,该集合在S中但不在T中的元素;

③S & T:返回一个包括S和T同时拥有的元素的集合;

④S ^ T :返回一个包括S和T中的非相同元素的集合;

⑤S <= T或S<T:判断子集关系,根据判断返回True/False;

⑥ S >= T或S>T:判断包含关系,根据判断返回True/False。

3.  增强操作符:

①S |= T:更新S,返回一个集合,包括S和T中使用元素;

②S-=T:更新S,返回一个集合,包括在S中但不在T中的元素;

③S&=T:更新S,返回一个集合,包括同时在S和T中的元素;

④S^=T:更新S,返回一个集合,包括S和T中的非相同元素。

4.集合的处理方法:

S.add(x):在集合S中增加x元素

S.discard(x):移除x元素,当x不在S中时,程序不会报错;

S.remove(x):移除x元素,当x不在S中时,程序会报错;

S.clear():移除S中的所有元素;

S.pop():随机返回S中的元素并更新S,若S中无元素,产生KeyError;

S.copy():返回集合S的一个副本;

len(S):返回S中的元素个数;

x in S:判断x元素是否在集合S中,并返回True/False;

set(x):将其他类型的变量转化为集合类型。

5.集合类型应用场景:

①包含关系比较

e.g:

      >>>”p”in {‘p’,’y’,123}

      True

②数据去重:

   >>>ls = [‘p’,’y’, ‘p’,’y’,123]

  >>>s = set(ls)

      {‘p’,’y’,123}

Ⅱ序列数据类型及操作

1.定义:

①序列是具有先后顺序的一组关系;

②序列是一维元素向量,元素类型可不同;

③类似于数学元素序列:S0 , S1 ……Sn-1;

④元素间有序号引导,通过下标访问序列的特定元素。

2.序列处理函数及方法

①通用操作符:

x in s :判断x是否是S中元素,并且输出True/False

x not in s:判断是否是S中元素,并且输出False/True

S + T:连接两个序列S和T

S*n 或n*S:将序列S复制n次

S[i]:索引,返回S中的第i个元素

S[i:j]或S[i:j:k]:对S进行切片并返回

③通用函数和方法:

len(S):返回序列S的长度

min(S):返回序列S中的最小元素

max(S):返回序列S中的最大元素

S.index(x)或S.index(x,i,j)返回序列S从i到j中第一次出现元素x的位置

S.count(x):返回S中出现x的总次数

3.元组数据类型:

①定义:-元组是序列类型的一种扩展。

  -元组是一种序列类型,一旦创建就不能修改

  -使用()或tuple()创建一个元组,元素间用“,”隔开

  -可以使用或者不使用()

e.g:

      >>>def func():

                    return 1,2

②元组操作类型:元组继承了序列类型的全部通用操作

4. 列表数据类型及操作:

①定义:列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

②列表类型操作函数:

ls[i] = x:替换ls中的第i个元素

ls[i:j:k] = lt:用列表lt替换ls切片后的所对应的元素拓展

del ls[i]:删除ls中的第i位元素

del ls[i:j:k]:删除列表ls中第i到j,以k为步长的元素

ls += lt:更新ls,将lt元素增加到ls中

ls*=n :更新列表ls,其元素重复n次

③列表操作方法:

list.append(obj):在列表末尾添加新的对象

list.count(obj):统计某个元素在列表中出现的次数

list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.index(obj):从列表中找出某个值第一个匹配项的索引位置

list.insert(index, obj):将对象插入列表

list.pop([index=-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj):移除列表中某个值的第一个匹配项

list.reverse():反向列表中元素

list.sort( key=None, reverse=False):对原列表进行排序

list.clear():清空列表

list.copy():复制列表

[if !supportLists]5.  [endif]序列类型应用场景

①元组用于元素不改变的应用场景,更多用于固定搭配场景

②列表更加灵活,是最常用的序列类型

③最主要作用:表示一组有序数列,进而操控它们

Ⅲ字典数据类型及操作

1.定义:一种键(索引)和值(数据)的对应

2.字典类型是“映射”的体现:

①键值对:键是数据索引的扩展

②字典是键值对的集合,键值对之间无序

③使用{}或dict()创建

e.g:

      >>>d= {‘中国’:’北京’,’美国’:’华盛顿’,’法国’:’巴黎’}

   >>>d[‘中国’]

   ‘北京

3.字典处理函数及方法:

del d[k]:删除字典d中键k对应的数据值

k in d:判断键k是否在字典d中,如果在返回True,否则False

d.keys():返回字典d中所有的键信息

d.values():返回字典d中所有的值信息

d.items():返回字典d中所有的键值对信息

d.get(k, <default>):键k存在,则返回相应值,不在则返回<default>值

d.pop(k, <default>):键k存在,则取出相应值,不在则返回<default>值

d.popitem();随机从字典d中取出一个键值对,以元组形式返回

d.clear():删除所有的键值对

len(d):返回字典d中元素的个数

4.字典数据类型应用场景:最主要作用是利用键值对数据,进而操作它们。

Ⅳ实例:基本统计值计算

对相关题目解答流程:

1.问题描述:对于一组数据,计算并分析出它们的平均数,中位数,极差。

总个数:len()

求和:for ...in

平均值:求和/总个数

方差:各数据与平均数差的平方的和的平均数

中位数:排序后,奇数个找中间一个数,偶数个找中间两个数。

补充:sorted()函数可以对列表进行排序

思路:对于平均数,我们需要求得它的总个数与和;对于中位数,我们需要对总个数进行判断,个数为奇数取中间值,偶数取中间两数的平均数;对于方差,我们需要利用平均数,再用每个数减去平均数的平方,求得的和开平方即为方差。

代码:


输出结果:

Ⅴ总结:通过对序列数据类型的学习,以后在对于不同数据类型的储存与使用将会更加方便,程序也会更加清晰。无论是多个元素无序组合,元素不能更改的集合;还是具有先后顺序的序列;亦或是键值对集合的字典,都值得我们认真学习并通过不断练习达到灵活使用的程度!

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

推荐阅读更多精彩内容