欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录几个特别有意思的python练习题

程序员文章站 2024-03-12 20:18:38
...

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]
相关标签: python