python基础学习——混合数据类型

浏览次数:  发布时间:2017-08-31 17:42
推荐阅读:

使用python爬取csdn博客访问
最近学习了python和爬虫,想写一个程序练练手,所以我就想到了大家都比较关心的自己的博客访问量,使用python来获取自己博客的访问量,这也是后边我将要进行的项

Python中的推导式介绍
推导式是 Python 中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括: 列表推导式字典推导式集合推导式嵌套列表推导式 NOTE: 字典和集合推导是最近才加入到Python的(Python 2.7 和Python 3.1以上版). 下面简要介绍下: 【列表推导式】 列表

元组创建后即固定,不能动态修改,若想修改可用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产生一个集合。

相关报道:

如何选择域名一直是不少站长在建站初期所遇到的比较头疼的问题之一:好域名被选走,自己想的又觉着没有什么价更多

说说Python程序的执行过程1 Python是一门解释型语言?我初学Python时,听到的关于Python的第一句话就是,Python是一门解释更多

站群系统、站群软件项目组 CaiJiXia.Net & Powered by DedeCMS
Copyright © 2010-2016 新领酷信息科技有限公司 版权所有
售前咨询

微信客服


微信晚间客服