Python的一些算法题目经常能够帮助我们巩固对一些常用方法的记忆,这里我们整理了一份Python内置数据结构与操作符的练习题集锦,需要的朋友可以参考下 第一题: give you two var a and b, print the value of a+b, just do it!
根据提议,给出两个变量 a 和 b 并打印出 a+b的值.
a, b = 1, 2
print a + b
当然也可以这么做
a = 1
b = 2
print a + b
第二题: 给你一个list, 如 L = [2, 8, 3, 5], 对L进行升序排序并输出。
L = sorted(L)
print L
L.sort()
print L
第三题: 给你一个字符串a, 如a = ‘12345’, 对a进行逆序输出。
a = a[::-1]
print a
第四题: 给你一个字典a = {1:1, 2:2, 3:3}, 输出字典a的key ,以’,’ 连接,如 ‘1,2,3’。
print ','.join(a.keys())
第五题: 给你一个字符串a, 输出字符串奇数位置的字符串,如 a = ‘12345’, 则输出 ‘135’
print ''.join([a[x] for x in range(len(a)) if x % 2 == 0])
第六题: 输出所有100以内的素数, 素数之间以空格区分。
L = [x for x in range(2, 101) if not [y for y in range(2, x) if x%y == 0]]
for i in L:
print L,
print
第七题: 已知矩形长a, 宽b, 输出其面积和周长,以一个空格隔开
print a * b, 2 * (a+b)
第八题: 给你一个list, 如 L = [0, 1, 2, 3, 4] 输出L的中位数
print sorted(L)[len(L)/2] if len(L) % 2 != 0 else \
(sorted(L)[Len(L)/2] + sorted(L)[len(L)/2 -1 ])/2.0
第九题: 给你两个正整数a和b, 输出它们的最大公约数。
print max([x for x in range(1, a+1) if x in [y for y in range(1, b+1) if b%y == 0]])
第十题: 给你两个正整数a和b, 输出它们的最小公倍数.
print min([x for x in range(a, a*b+1) if x%a==0 and x%b==0])
附加题: 利用map/reduce 函数实现数的阶乘 如 5!+4!+3!+2!+1!.
print map(lambda x: reduce(lambda y,z: y*z, range(1, x+1)), range(1,6))
print reduce(lambda a, b: a+b, map(lambda x: \
reduce(lambda y, z: y*z, range(1, x+1)),range(1,6)))
附加题: 使用filter函数 实现素数
print filter(lambda x: not [x%i for i in range(2,x) if x%i==0], range(2, 101))
|