-
现在,班里有3名同学:
>>> L = ['Adam', 'Lisa', 'Bart']
今天,班里转来一名新同学 Paul,如何把新同学添加到现有的 list 中呢?
第一个办法是用 list 的
append()
方法,把新同学追加到 list 的末尾:>>> L = ['Adam', 'Lisa', 'Bart'] >>> L.append('Paul') >>> print L ['Adam', 'Lisa', 'Bart', 'Paul']
append()总是把新的元素添加到 list 的尾部。
如果 Paul 同学表示自己总是考满分,要求添加到第一的位置,怎么办?
方法是用list的
insert()
方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素:>>> L = ['Adam', 'Lisa', 'Bart'] >>> L.insert(0, 'Paul') >>> print L ['Paul', 'Adam', 'Lisa', 'Bart']
L.insert(0, 'Paul') 的意思是,'Paul'将被添加到索引为 0 的位置上(也就是第一个),而原来索引为 0 的Adam同学,以及后面的所有同学,都自动向后移动一位。
查看全部 -
特殊函数:
1. enumerate( ) :将索引和其对应的元素进行捆绑成一个元素。
L['paul','adam']
enumerate(L) 将L数列变换成[(0,'paul'),(1,'adam')]
2. zip([ ],[ ]) :将两个数列合成一个数列。
zip([10,20,30],['paul','adam','alex']) 生成一个数列为:[(10,'paul'),(20,'adam'),(30,'alex')]
3. 判断是否为字符串,或数字的函数。
isinstance(x,str):判断是否为字符串:
isinstance(x,int): 判断是否为数字
4. 求除数和余
一般采用 / 来就商,用%来求余数。
可以使用 divmod() 来求商和余数。
例如:10/3=3
10%3=1
divmod(10,3)=(3,1)
5. 将字符串已某一字符进行分割。其函数为split().其结果是一个数列 list 格式
例如:L='glover,mask,cat vitamins,call ambulance'
L.split(',')=['glover','mask','cat vitamins','call ambulance']
6.将多个字符串连接在一块。其函数为join(),
L=['glover','mask','cat vitamins','call ambulance']
','.join(L)=glover,mask,cat vitamins,call ambulance
(使用,号连接各字符串,若想用空格,则可改为 ' '.join(L) )
6.range() 函数
range(start,stop,step): 从start开始,到stop为止,但不包含stop,步进为step。
range(5): 默认从0开始,终于5.则为0,1,2,3,4,
range(1,5,2):1,3
查看全部 -
20后面没有加:!!!
一定要记得加冒号,所以一直在报错
查看全部 -
记住倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引。
查看全部 -
Python中数据类型
查看全部 -
注意:if 语句中的...表示没有列出的其它星期名称,测试时,请输入完整。
如果事先创建好一个set,包含'MON' ~ 'SUN':
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
再判断输入是否有效,只需要判断该字符串是否在set中:
x = '???' # 用户输入的字符串if x in weekdays: print 'input ok'else: print 'input error'
查看全部 -
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for key in d:
print key + ':' , d[key]查看全部 -
python中不同类型的字符拥有不同的格式符,分别为:
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
用法实例:
1
2
name =
"Tom"
print
"Hello %s"
% name
在第二行中print了一个格式化字符串,把name变量的内容替换到%s处。
打印出来就是:
1
Hello Tom
查看全部 -
创建包含1个元素的 tuple 呢?来试试:
>>> t = (1) >>> print t 1
好像哪里不对!t 不是 tuple ,而是整数1。为什么呢?
因为
()
既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:
>>> t = (1,) >>> print t (1,)
Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。
多元素 tuple 加不加这个额外的“,”效果是一样的:
>>> t = (1, 2, 3,) >>> print t (1, 2, 3)
查看全部 -
如果Paul同学排在最后一个,我们可以用list的
pop()
方法删除:>>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] >>> L.pop() 'Paul' >>> print L ['Adam', 'Lisa', 'Bart']
pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,所以我们执行 L.pop() 后,会打印出 'Paul'。
如果Paul同学不是排在最后一个怎么办?比如Paul同学排在第三:
>>> L = ['Adam', 'Lisa', 'Paul', 'Bart']
要把Paul踢出list,我们就必须先定位Paul的位置。由于Paul的索引是2,因此,用
pop(2)
把Paul删掉:>>> L.pop(2) 'Paul' >>> print L ['Adam', 'Lisa', 'Bart']
查看全部 -
布尔运算在计算机中用来做条件判断,根据计算结果为True或者False,计算机可以自动执行不同的后续代码。
在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:
a = True print a and 'a=T' or 'a=F'
计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?
因为Python把
0
、空字符串''
和None
看成 False,其他数值和非空字符串都看成 True,所以:True and 'a=T' 计算结果是 'a=T' 继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。
1. 在计算
a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。2. 在计算
a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
查看全部 -
因为Python把
0
、空字符串''
和None
看成 False,其他数值和非空字符串都看成 True短路计算:
1. 在计算
a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。2. 在计算
a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
查看全部 -
def toUppers(L): return [x.upper() for x in L if isinstance(x,str) ] print toUppers(['Hello', 'world', 101])
查看全部 -
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }def generate_tr(name, score): return '<tr><td>%s</td><td >%s</td></tr>' % (name, score)tds = [generate_tr(name, score) for name, score in d.iteritems()]print '<table border="1">'print '<tr><th>Name</th><th>Score</th><tr>'print '\n'.join(tds)print '</table>'
查看全部 -
注:字符串可以通过 % 进行格式化,用指定的参数替代 %s。字符串的join()方法可以把一个 list 拼接成一个字符串。
查看全部
举报