python基础学习——混合数据类型 - 在线留言 - 正定县枫林商贸有限公司
现在的位置: 主页 > 在线留言 > 文章正文
python基础学习——混合数据类型
作者:正定县枫林商贸有限公司 来源:www.hbflsm.com 发布时间:2017-09-06 11:47:58
python基础学习——混合数据类型

元组创建后即固定,不能动态修改,若想修改可用list()函数转为列表修改。创建可以调用tuple()函数或者直接创建。有时元组必须包含在括号里,以避免语义的二义性,例如将元组1,2,3传递给一个函数,则应该写成function((1,2,3))。元组只提供了两种方法,t.count(x)返回对象x在元组中出现的次数,t.index(x)返回元组中从左侧开始第一次出现x的位置,若元组不包含x,则产生ValueError异常。

组元可以使用操作符+、*、[]分片,或in 以及 not in来测试成员关系,增强型运算符也可以使用。

拆分序列可以用于交换值:

a,b = (b,a)

(1)命名的元组
通过collections提供的namedtuple()函数,创建自定义的元组数据类型。

import collections sale = collections.namedtuple('sale','name price number') product1 = sale('LK',100,8) product1 Out[169]: sale(name='LK', price=100, number=8)

函数collections.namedtuple()第一个参数为创建的元组的名称,第二个参数为字符串,定义元组的内容。
输出调用方式:

print('{0.name} {0.price} {0.number}'.format(product1)) LK 100 8

'{name} {price} {number}'.format(**product1._asdict()) Out[177]: 'LK 100 8'

"{0.product} {0.price} {0.number}".format(shoes) Out[5]: 'shoes 100 10'

二、列表
列表可以直接通过[]创建,或者调用list()函数,可以使用索引或者分片符操作。

这里写图片描述


任意可迭代的数据类型(元组,列表,字符串)都可以通过序列拆分操作符进行拆分,即。用于赋值操作符左边的两个或多个变量时,数据项将赋值给不带的变量,剩余的变量赋值给带*的变量。

one,*other = name one,other Out[30]: ('1111', ['kai', 'name1', 'name2', 'name3', 'wang', 'shi', 'xiong'])

带*的变量也可以作为参数传递。

这里写图片描述


迭代处理列表中的数据项:

for i in range(len(lst)): print (lst[i])

(1)列表扩展:
方法一:

lst Out[36]: [1, 2, 3, 4, 5] lst += [6,7] lst Out[38]: [1, 2, 3, 4, 5, 6, 7]

方法二:

lst.extend([8,9]) lst Out[40]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

(2)列表插入:
方法一:

lst[0:0] = [0] lst Out[42]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

方法二:

lst.insert(0,-1)

(3)列表数据项替换:
替换单个数据项:与上述添加的区别在于索引格式与冒号

lst[2] = 3

替换一定长度的数据项:

lst[1:4] = [5,4,3]

(4)列表内涵
列表内涵用来快速创建列表,列表内涵是一个表达式,也是一个循环,该循环可以有一个可选在、在方括号内部的条件,作用是为列表生成数据项,并且滤过不需要的数据项。列表内涵最简单的形式为如下两种:

lst = [expression for item in iterable] lst = [expression for item in iterable if condition]

实例一:

lst = [num for num in range(5)] print(lst)

实例二:

code = [s + z + c for s in 'MF' for z in 'SMLX' for c in 'BGW' if not(s == 'F' and z == 'X')] print(code)

三、集合
集合中的数据项的排列是无序的,包括set()与固定集合forzenset()。只有可哈希运算的对象可以添加到集合中,例如(float、frozenset、int、str、tuple)。可变数据类型都不是可哈希运算的。因为其哈希值会随着包含数据项的多少而变化,因此这些数据项不能添加到集合中。
注:哈希算法,是指将任意长度的二进制值映射为一个较短的固定长度的二进制值,如果原明文改变长度,则其哈希值将会改变。
集合是可变的,可以任意添加或删除数据项,并且集合中的数据项是唯一的,没有重复的数据项,因此集合常常用于删除重复的数据项。

这里写图片描述


这里写图片描述


这里写图片描述


可通过集合差别操作符删去集合中的数据项:

filname = set(filename) - {'name1','name2'}

(1)集合内涵
与列表内涵类似,见上文。
(2)固定集合
只能使用frozenset()创建,如果将二元运算应用于集合与固定集合,那么产生的数据类型与左边操作数的数据类型一致。
若f为固定集合,s为集合,f & s产生一个固定集合,s & f产生一个集合。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:湖北网站制作 http://hubei.666rj.com


  • 上一篇:Drupal虚拟主机选择技巧
  • 下一篇:最后一页
  • 
    COPYRIGHT © 2015 正定县枫林商贸有限公司 ALL RIGHTS RESERVED.
    本站所有原创信息,未经许可请勿任意转载或复制使用 网站地图 技术支持:肥猫科技
    精彩专题:网站建设
    购买本站友情链接、项目合作请联系客服QQ:2500-38-100