1.写出以下结果
print(1<2 and 2==2)
print(1<2 and 2==1)
print(1>2 and 2==2)
结果:
True
False
False
解:
18. xrange和range的区别?
答案: 这个题的环境应该放在python2.x中,因为python3中将xrange和range合并为了range
在python2中 range的返回值为list,生成一个序列, xrange则是作为一个生成器.相对来说xrange比range性能优化很多.
在python3中 range的返回值为range对象 <class 'range'>
39. a = range(10),a[::-3] 的结果是_____.
答案: range(9, -1, -3)
41.将列表内的元素,根据位数合并成字典
lst = [1,2,4,16,32,64,128,256,512,1024,32679,65536,4294967296] # 要求输出为
{
1: [1, 2, 4],
2: [16, 32, 64],
3: [128, 256, 512],
4: [1024],
5: [32679, 65536],
6: [4294967296]
}
解:
dic = {}
for i in range(1,7):
dic[i] = [] print(dic)
for el in lst:
c = 0
a = el
while a != 0 and c <= 5:
a = a // 10
c += 1
print(c)
dic[c].append(el)
print(dic)
这个题判断位数时有两种思路,我上面用的是将数字// floor除以10,计算除的次数,次数就是这个数字的位数.另一种思路是将数字转化为str,用len()来计算字符串长度来判断位数,这里就不详细写出第二种方式的解法了
42.请尽量用简洁的方法将二维数组转换成一维数组
例:转换前 lst = [[1,2,3],[4,5,6],[7,8,9]] , 转换后 lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
解法:
lst = [ c for el in lst for c in el]
print(lst)
43.将列表按下列规则排序,补全代码 sorted(lst, key=lambda x:__)
1.正数在前负数在后
2.正数从小到大
3.负数从大到小
例:
排序前 [0,4,5,7,-2,-5,-8]
排序后 [0,4,5,7,-2,-5,-8]
答案: sorted(lst,key=lambda x:(x<0,abs(x)))