初级 Python 学习笔记(1)
python 元组 操作及方法
一、元组
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。是一个固定长度,不可改变的Python序列对象
a,从元组的开头“摘取”几个元素
a,b,*_=(1,2,3,4,5,6,7)
in: a
out :1
in :b
out: 2
in: *_
out :(3,4,5,6,7)
b,tuple的count方法
a=(2,3,4,5,5,5,5,6,7)
in:a.count(5) #获取5出现的次数
out:4
二、列表
a.列表是内容可变,长度可变的 pytyon对象
In [36]: a_list = [2, 3, 7, None]
In [37]: tup = ('foo', 'bar', 'baz') In [38]: b_list = list(tup) #列表内容可修改 In:b_list[0]="nba" In:b_list out:("nba","bar","baz") b,列表和元组的语义接近,在许多函数中可以交叉使用。list
函数常用来在数据处理中实体化迭代器或生成器:
#bisect模块支持二分查找,和向已排序的列表插入值。bisect.bisect可以找到 插入值后仍保证排序的位置,bisect.insort是向这个位置插入值: In [67]: import bisect In [68]: c = [1, 2, 2, 2, 3, 4, 7] In [69]: bisect.bisect(c, 2) Out[69]: 4 In [70]: bisect.bisect(c, 5) Out[70]: 6 In [71]: bisect.insort(c, 6) In [72]: c Out[72]: [1, 2, 2, 2, 3, 4, 6, 7] #注意:bisect模块不会检查列表是否已排好序,进行检查的话会耗费大量计算。因此,对未排序的列表使用bisect不会产生错误,但结果不一定正确。
d,切片
用切边可以选取大多数序列类型的一部分,切片的基本形式是在方括号中使用start:stop
:
stop - start
负数表明从后向前切片:
In [79]: seq[-4:] Out[79]: [5, 6, 0, 1] In [80]: seq[-6:-2] Out[80]: [6, 3, 5, 6] 三、字典 字典可能是Python最为重要的数据结构。它更为常见的名字是哈希映射或关联数组。它是键值对的大小可变集合,键和值都是Python对象。创建字典的方法之一是使用尖括号,用冒号分隔键和值: In [101]: empty_dict = {} In [102]: d1 = {'a' : 'some value', 'b' : [1, 2, 3, 4]} In [103]: d1 Out[103]: {'a': 'some value', 'b': [1, 2, 3, 4]} 可以用del
关键字或pop
方法(返回值的同时删除键)删除值:
In [112]: del d1[5]
In [114]: ret = d1.pop('dummy')
keys
和values
是字典的键和值的迭代器方法。虽然键值对没有顺序,这两个方法可以用相同的顺序输出键和值:
用update
方法可以将一个字典与另一个融合:
update
方法是原地改变字典,因此任何传递给update
的键的旧的值都会被舍弃。
常常,你可能想将两个序列配对组合成字典。下面是一种写法:
mapping = {} for key, value in zip(key_list, value_list): mapping[key] = value因为字典本质上是2元元组的集合,dict可以接受2元元组的列表:
In [121]: mapping = dict(zip(range(5), reversed(range(5)))) In [122]: mapping Out[122]: {0: 4, 1: 3, 2: 2, 3: 1, 4: 0} 后续=》setdefault
更多精彩