文章目录
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 ]