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

Python基础练习题之2

程序员文章站 2024-03-23 17:46:16
...

本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
部分答案依旧参考原博主https://blog.csdn.net/xufive/article/details/102993541题库也来自于https://blog.csdn.net/xufive/article/details/102993538
写着标准答案的批注是觉得原作者的答案很不错很值得参考

###### 6th,December,2019
###### Writed by XingFu

import numpy as np
### 11 将列表[3,0,8,5,7]中大于5元素变为1,其余元素变为0
lst = [3,0,8,5,7]
re_lst = []
for i in lst:
    if i > 5:
        i = 1
        re_lst.append(i)
    elif i <= 5:
        i = 0
        re_lst.append(i)
print("re_lst",re_lst)
#### 标准答案:
###>>> [1 if item>5 else 0 for item in[3,0,8,5,7]]
re_lst1 = [1 if item > 5 else 0 for item in [3,0,8,5,7]]
print("re_lst1",re_lst1)


### 12 遍历列表['x','y','z'],打印每一个元素及其对应的索引号
a = ['x','y','z']
for i in a:
    id = a.index(i)
    print(i,id)
### 标准答案:
###>>> for index, value in enumerate(['x','y','z']):
###	print('index={}, value={}'.format(index,value))
for index, value in enumerate(['x','y','z']):
    print('index = {}, value = {}'.format(index,value))


### 13 将列表[0,1,2,3,4,5,6,7,8,9]拆分为奇数组和偶数组两个列表
b = [0,1,2,3,4,5,6,7,8,9]
b1 = b[::2]
b2 = b[1::2]
print("偶数",b1)
print("奇数",b2)
for i in b:
   if i % 2 == 1:
        b.remove(i)
print("偶数",b)

### 14 分别根据每一行的首元素和尾元素大小对二维列表排序
c = [[6,5,3],[3,7,9],[8,2,6]]
c1 = np.sort(c,axis=1)
print(c1)
### 参考答案:
### >>> a = [[6, 5], [3, 7], [2, 8]]
###>>> sorted(a, key=lambda x:x[0]) # 根据每一行的首元素排序,默认reverse=False
###[[2, 8], [3, 7], [6, 5]]
###>>> sorted(a, key=lambda x:x[-1]) # 根据每一行的尾元素排序,设置reverse=True实现逆序
###[[6, 5], [3, 7], [2, 8]]
c2 = sorted(c,key=lambda x:x[0],reverse=False)
c3 = sorted(c,key=lambda x:x[-1],reverse=False)
print(c2)
print(c3)

### 15 从列表[1,4,7,2,5,8]索引为3的位置开始,依次插入列表
# ['x','y','z']的所有元素。
d = [1,4,7,2,5,8]
e = ['x','y','z']
d.insert(3,e)
print(d)

### 16 快速生成由[5,50]区间内的整数组成的列表
h = list(np.arange(5,50,dtype=int))
print(h)
### 标准答案:
### >>> list(range(5,50)) # 和py2不同,py3的range()返回的是<class 'range'>,而不是<class 'list'>


### 17 若 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) ## id方法的返回值就是对象的内存地址
###False
# la = [1,2,3]
# lb = la.copy()
# lb[0] = 9
# print(la)
la = [1,2,3]
lb = la
lb[0] = 9
print(la)



### 18 将列表['x','y','z']和[1,2,3]转成[('x',1),(['y',2]),('z',3)]
v = ['x','y','z']
p = [1,2,3]
k = list(zip(v,p))
print(k)
### 参考答案:
###>>> [(a,b) for a,b in zip(['x','y','z'],[1,2,3])]



### 19,20 以列表形式返回字典{’Alice':20, 'Beth':18, 'Ceil'21}中所有的键
### 以及值
key_val = {'Alice':20, 'Beth':18, 'Ceil':21}
key_list = list(key_val.keys())
val_list = list(key_val.values())
print(type(key_list))
print(val_list)
### 标准参考答案:
a = [key for key in key_val.keys()]
b = [value for value in key_val.values()]
print(a)
print(b)