记录几个特别有意思的python练习题
程序员文章站
2024-03-12 20:18:38
...
文章目录
- 1.反转列表
- 2.从列表 [True,1,0,‘x’,None,‘x’,False,2,True] 中删除元素‘x’
- 3. 删除列表中索引号为奇数(或偶数)的元素。
- 4. 若 a = [1,2,3],令 b = a,执行 b[0] = 9, a[0]亦被改变。为何?如何避免?
- 5.将二维结构 [[‘a’,1],[‘b’,2]] 和 ((‘x’,3),(‘y’,4)) 转成字典。
- 6.将 0.00774592 和 356800000 格式化输出为科学计数法字符串。
- 7.将字符串 ‘10100’ 按照二进制、八进制、十进制、十六进制转为整数.
- 8.判断给定的参数 x 是否是整形。
- 9.找到列表 [8,5,2,4,3,6,5,5,1,4,5] 中出现最频繁的数字以及出现的次数。
- 10.将二维列表 [[1], [‘a’,‘b’], [2.3, 4.5, 6.7]] 转为 一维列表。
- 11.使用链状比较操作符重写逻辑表达式 a > 10 and a < 20。
- 12.数字列表求和。
- 13.返回给定对象的属性和方法。
- 14.计算字符串表达式 ‘(2+3)*5’ 的值。
- 15.实现字符串 ‘x={“name”:“David”, “age”:18}’ 包含的代码功能。
- 16. 使用 map 函数求列表 [2,3,4,5] 中每个元素的立方根。
1.反转列表
[0,1,2,3,4,5,6,7][::-1]
2.从列表 [True,1,0,‘x’,None,‘x’,False,2,True] 中删除元素‘x’
>>> a = [True,1,0,'x',None,'x',False,2,True]
>>> for i in range(a.count('x')):
a.remove('x')
>>> a
[True, 1, 0, None, False, 2, True]
3. 删除列表中索引号为奇数(或偶数)的元素。
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del a[::2]
>>> a
[1, 3, 5, 7, 9]
>>> a = list(range(10))
>>> del a[1::2]
>>> a
[0, 2, 4, 6, 8]
4. 若 a = [1,2,3],令 b = a,执行 b[0] = 9, a[0]亦被改变。为何?如何避免?
>>> a = [1,2,3]
>>> b = a
>>> id(a) == id(b) # 对象a和对象b在内存中是同一个,所以会出现关联
True
>>> b = a.copy() # 正确的做法是复制一个新的对象
>>> id(a) == id(b)
False
5.将二维结构 [[‘a’,1],[‘b’,2]] 和 ((‘x’,3),(‘y’,4)) 转成字典。
>>> dict([['a',1],['b',2]])
{'a': 1, 'b': 2}
>>> dict((('x',3),('y',4)))
{'x': 3, 'y': 4
6.将 0.00774592 和 356800000 格式化输出为科学计数法字符串。
>>> '%E, %e'%(0.00774592, 356800000)
'7.745920E-03, 3.568000e+08'
7.将字符串 ‘10100’ 按照二进制、八进制、十进制、十六进制转为整数.
>>> int('10100', base=2)
20
>>> int('10100', base=8)
4160
>>> int('10100', base=10)
10100
>>> int('10100', base=16)
65792
8.判断给定的参数 x 是否是整形。
>>> x = 3.14
>>> isinstance(x, int) # 还可以用来判断是不是列表数组哇
False
>>> x = list()
>>> isinstance(x, (list,tuple))
True
9.找到列表 [8,5,2,4,3,6,5,5,1,4,5] 中出现最频繁的数字以及出现的次数。
>>> a = [8,5,2,4,3,6,5,5,1,4,5]
>>> v_max = max(set(a),key=a.count)
>>> v_max
5
>>> a.count(v_max)
4
10.将二维列表 [[1], [‘a’,‘b’], [2.3, 4.5, 6.7]] 转为 一维列表。
>>> sum([[1], ['a','b'], [2.3, 4.5, 6.7]], [])
[1, 'a', 'b', 2.3, 4.5, 6.7]
11.使用链状比较操作符重写逻辑表达式 a > 10 and a < 20。
>>> a = 0
>>> 10 < a < 20
False
12.数字列表求和。
>>> import random
>>> a = [random.random() for i in range(5)] # 这里使用random生成5个随机数,(我的理解占位)
>>> a
[0.14325621525854948, 0.08966234475020718, 0.7709046143357973, 0.5893791190407542, 0.30582848481979086]
>>> sum(a)
1.8990307782050992
13.返回给定对象的属性和方法。
>>> a = ()
>>> for item in dir(a):
print(item)
__add__
__class__
__contains__
__delattr__
__dir__
__doc__
__eq__
__format__
__ge__
__getattribute__
__getitem__
__getnewargs__
__gt__
__hash__
__init__
__init_subclass__
__iter__
__le__
__len__
__lt__
__mul__
__ne__
__new__
__reduce__
__reduce_ex__
__repr__
__rmul__
__setattr__
__sizeof__
__str__
__subclasshook__
count
index
>>>
14.计算字符串表达式 ‘(2+3)*5’ 的值。
>>> eval('(2+3)*5')
25
15.实现字符串 ‘x={“name”:“David”, “age”:18}’ 包含的代码功能。
>>> exec('x={"name":"David", "age":18}')
>>> x
{'name': 'David', 'age': 18}
16. 使用 map 函数求列表 [2,3,4,5] 中每个元素的立方根。
>>> [item for item in map(lambda x:pow(x,1/3), [2,3,4,5])]
[1.2599210498948732, 1.4422495703074083, 1.5874010519681994, 1.7099759466766968]
上一篇: Apache Hive