-
如果我们只想要偶数的平方,不改动 range()的情况下,可以加上 if 来筛选:
>>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100]
有了 if 条件,只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。
查看全部 -
但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
>>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。
查看全部 -
注意灵活运用
查看全部 -
使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate() 的特殊语法。实际上,enumerate() 函数把:
['Adam', 'Lisa', 'Bart', 'Paul']
变成了类似:
[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]
因此,迭代的每一个元素实际上是一个tuple:
查看全部 -
字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:
>>> 'ABCDEFG'[:3] 'ABC' >>> 'ABCDEFG'[-3:] 'EFG' >>> 'ABCDEFG'[::2] 'ACEG'
查看全部 -
range()函数可以创建一个数列:
>>> range(1, 101) [1, 2, 3, ..., 100]
查看全部 -
dict和list做对比,前者查找速度快,不管记录有几条,但是占用内存大。
不能用dict存储有序的集合。
查看全部 -
避免发生KeyError,有两个办法:
if 'Paul' in d:
print d['Paul']
print d.get('Bart'),如果没有,则返回none。
查看全部 -
x%2 这个是什么意思?
查看全部 -
全排列还可以这样做。for的内外循环。
查看全部 -
Python的函数返回多值其实就是返回一个tuple
任务
一元二次方程的定义是:ax² + bx + c = 0
请编写一个函数,返回一元二次方程的两个解。
注意:Python的math包提供了sqrt()函数用于计算平方根。
?不会了怎么办
请参考求根公式:x = (-b±√(b²-4ac)) / 2a
参考代码:
import math def quadratic_equation(a, b, c): t = math.sqrt(b * b - 4 * a * c) return (-b + t) / (2 * a),( -b - t )/ (2 * a) print quadratic_equation(2, 3, 0) print quadratic_equation(1, -6, 5)
查看全部 -
for i in list 将列表里的值依次赋值给I循环
while trut 条件循环
break 跳出循环
continue 跳过代码块继续循环
查看全部 -
任务
请定义一个 square_of_sum 函数,它接受一个list,返回list中每个元素平方的和。
for 循环可以取出list中每个元素。
参考代码:
def square_of_sum(L): sum = 0 for x in L: sum = sum + x * x return sum print square_of_sum([1, 2, 3, 4, 5]) print square_of_sum([-5, 0, 5, 15, 25])
查看全部 -
大佬代码 d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } for key in ['Adam', 'Lisa', 'Bart']: print "%s: %d"%(key, d[key])
查看全部 -
append 是附加的意思
insert 是插入插在第几个的意思
查看全部
举报