python第六讲:组合数类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python第六讲:组合数类型相关的知识,希望对你有一定的参考价值。

参考技术A 定义:集合是多个元素的无序组合

特点:集合类型与数学中的集合概念一致,几何元素之间无序、每个元素唯一、不存在相同元素,几何元素不可更待、不能存在可变数据类型。

非可变数据类型:整数、浮点数、复数、字符串类型、元组类型等

表示:,元素间用,分隔

建立: 或者set,建立空集合必须使用set

举例:

基本操作符:

增强操作符:

实例:

A-B
123

B-A
'3','1','2'

A&B

'p','y'

A|B

'1','p','2','y','3',123

A^B

'2',123,'3','1'

p123y

A

set()

1.包含关系比较:

True

False

2.数据去重

'p','y',123

['p','y',123]

定义:序列是具有先后关系的一组元素

特点:序列是一维元素向量,元素类型可以不同,元素可以相同:类似数学元素序列:元素间有序列引导,通过下标访问序列的特定元素

序列是一个基类类型,衍生为:字符串类型、元组类型、列表类型

序号的定义:正向递增序号、反向递减序号,与字符串中相似。

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

'oi.321nohtyp'

序列类型的通用函数和方法:

3

'y'

定义:元组类型是序列类型的一种扩展,一旦创建就不能修改

形式:元组使用()或者tuple()创建,元素之间用逗号分隔:小括号使不使用都可以。

举例:

('cat','dog','tiger','human')

(4352,'bule',('cat','dog','tiger','human'))

元组类型继承序列类型全部通用操作:操作符、处理函数、处理方法

元组类型创建后不能修改,因此没有特殊操作

('human','tiger',dog','cat')

'tiger'

定义:列表是序列类型的一种扩展,创建后其中的元素可以被随意修改

使用:[]或者list()创建,元素间可以用逗号隔开,列表中各元素类型可不同,无长度限制

['cat','dog','tiger',1024]

['cat','dog','tiger',1024]

列表类型操作函数及其方法:

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

修改列表:

练习:

序列:元组和列表两种重要类型

应用场景:元组用于元素不改变的场景,更多用于固定搭配场景:列表更加灵活,它是最常用的序列类型

作用:表达一组有序数据并且处理问题;数据保护

元素遍历:

元组类型:

数据保护:不希望数据被程序所改变,转换成元组类型

('cat',1,2,3,4,'tiger',1024)

基本统计值需求:给出一组数并且理解

定义:总个数、求和、平均值、方差、中位数...

总个数:len()

求和:for...in

平均值:求和/总个数

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

中位数:排序,然后... 奇数找中间一个,偶数中间两个的平均

映射:是一种索引和数据的对应关系,也是键和值的对应关系。

映射类型:由用户数据为定义索引

字典类型:数据的组织与表达的一种新的形态,是映射的体现。

键值对:键是数据索引的扩展,字典是键值对的集合,键值对间无序。

生成:和dict()创建,键值对之间用冒号:表示

举例:<键1>:<值1>,<键2>:<值2>,...,<键n>:<值n>

在字典变量中,通过键获得值:

<字典变量>=<键1>:<值1>,...,<键n>:<值n>

<值>=<字典变量>[<键>]

<字典变量>[<键>]=<值>

用[]来向字典中增加或者索引键值对

举例:

'北京'

生成空字典:

de=;type(de)

<class 'dict'>

type(x) 返回变量x的类型

举例:

True

dict_keys(['中国','美国','法国])

dict_values(['北京','华盛顿','巴黎'])

实例:

'北京'

'伊斯兰堡'

('中国','北京')
练习:

1.映射的表达:映射无处不在,键值对也无处不在,统计数据出现的次数,数据是键,次数是值。

字典的主要作用:表达键值对的数据进而操作他们

2.元素遍历:

for k in d:

​ <语句块>

定义:jieba库是优秀的第三方中文分词库,需要额外安装

安装方法:(cmd命令下)pip install jieba

作用:利用中文词库确定汉字间的关联概率,字间概率大的组成词组,形成分词效果,用户还可以向其中自定义的添加词组。

分类:精确模式、全模式、搜索引擎模式

精确模式:将词组精确的分开,不存在冗余单词

全模式:将所有可能的词组都扫描出来,有冗余

搜索引擎模式:在精确模式的基础上,将长词再次切分

举例:

['中国','是','一个','伟大','的','国家']

['中国','国是','一个','伟大','的','国家']

['中华','华人','人民','共和','共和国','中华人民共和国','是','伟大','的']

需求:一篇文章中出现的词的频率统计

分类:英文文本,中文文本

举例:

英文:哈姆雷特(hamlet)

中文:三国演义(threekingdoms)

TypeScript 第六讲 ———— TypeScript 泛型

前言:

泛型:软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵话的功能。

在像c和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。这样 用户就可以以自己的数据类型来使用组件。

通俗理解,泛型就是解决类接口方法的复用性、以及对不特定数据类型的支持

下面这种就只能返回string类型的数据:
function getData(value:string):string
  return value;

any放弃了类型检查,不管什么类型都可以

泛型

可以支持不特定的数据类型

要求:传入你的参数和返回的参数一致

T表示泛型,具体什么类型是调用这个方法的时候决定的

function getData<T>(value:T):T
  return value;

getData<number>(123);

泛型类:

比如有个最小的算法,需要同时支持返回数字和字符串两种类型。通过类的泛型来实现

class  MinClass<T>

  public list:T[] = [];

  add(num:T)

    this.list.pust(num);

  

  min():T

    var minNum = this.list[0];

    for(var i = 0;i<this.list.length;i++)

      if(minNum>this.list[i])

        minNum = this.list[i];

      

    

    return minNum;

  



var m1 = new MinClas<number>();

var m2 = new MinClas<string>();

m1.add(1);

m1.add(3);

m2.add(a);

m2.add(f);

泛型接口

第一种

interface configFn

  <T>(value1:T,value2:T):T;


var setData:configFn = function(value1:T,value2:string):T

  return value1+value2;



setData<string>(‘name’,‘张三’);

第二种

interface configFn<T>

  (value1:T,value2:T):T;


function getData<T>(value1:T,value2:string):T

  return value1+value2;



var myGetData:configFn<string> = getData;

myGetData("20","23");

 

以上是关于python第六讲:组合数类型的主要内容,如果未能解决你的问题,请参考以下文章

16位汇编第六讲汇编指令详解第第三讲

python 两个列表组合成一个新的列表?

Python__组合数据类型

Python组合数据类型

Python组合数据类型

c++两个数组合并成一个新数组