-
对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。
L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。
如果第一个索引是0,还可以省略:
只用一个 : ,表示从头到尾:
切片操作还可以指定第三个参数:
>>> L[::2] ['Adam', 'Bart']
第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。
查看全部 -
可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数:
在函数内部,直接把变量 args 看成一个 tuple 就好了。
查看全部 -
int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数。
查看全部 -
set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
最后,set存储的元素也是没有顺序的。
查看全部 -
def power(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
查看全部 -
int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数
由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:
查看全部 -
list 替换元素
对list中的某一个索引赋值,就可以直接替换,个数不变
查看全部 -
注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括: 1. 有序集合:list,tuple,str和unicode; 2. 无序集合:set 3. 无序集合并且具有 key-value 对:dict
查看全部 -
tuple中的不变可以这样理解
假设这是一个tuple
这是定义的时候tuple包含的3个元素:
当我们把list的元素'A'和'B'修改为'X'和'Y'后,tuple变为:
表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。
tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
查看全部 -
tuple元素有多种,有包含多个元素的,也有为空的直接用()表示,其中只包含一个元素的被称为单元素tuple。
直接打印单元素会得到内容,
因为
()
既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义。
查看全部 -
a = True
print a and 'a=T' or 'a=F'
计算结果不是布尔类型,而是字符串'a=T',这是为什么呢?
因为Python把0 空字符串''和None看成False,其他数值和非空字符串都看成True,所以:
3-9 中布尔类型
查看全部 -
元组:tuple是另一种有序的列表。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了,且用( )替换[ ]。
在tuple中没有append()方法,insert()方法和pop()方法。
tuple元素的其他方法与List一样
查看全部 -
\n 表示换行
\t 表示一个制表符
\\ 表示\字符本身
查看全部 -
在List(数组)中,对某一索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。
具体操作为直接将要替换的内容赋给该索引号。
查看全部 -
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
dict的第二个特点就是存储的key-value序对是没有顺序的!
dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。
查看全部
举报