1.对列表a = [1,2,3,1,2,4,6]进行去重后,得到列表b,在不考虑列表元素的排列顺序的前提下,下列方法错误的是:(D)
A.
b = list(set(a))
B.
b = {}
b = list(b.fromkeys(a))
C.
a.sort()
b = []
i = 0
while i < len(a):
if a[i] not in b:
b.append(a[i])
else:
i += 1
D.
a.sort()
for i in range(len(a)-1):
if a[i] == a[i+1]:
a.remove(a[i])
else:
continue
b = a
解析:
D选项错误原因在于for循环的计数次数是不变的,但是随着a重复元素不断的移除,会导致列表出现IndexError。
2.在Python3中,下列语句正确结果为:C
tmp = [2, 1, 5, 4, 7]
print(max(tmp))
print(tmp.index(max(tmp)))
A.7,1
B.5,2
C.7,4
D.7,5
解析:
Python3中,max(obj)函数表示返回 obj 的最大元素,list.index(obj) 表示返回 obj 在 list 中的索引(list的索引是从0开始的)。
3.对于以下代码,描述正确的是:(D)
list = ['1', '2', '3', '4', '5']
print(list[10:])
A.导致 IndexError
B.输出['1', '2', '3', '4', '5']
C.编译错误
D.输出[]
解析:
如果是索引访问,会导致IndexError,但本体考的是切片,切片操作时如果索引越界不会导致IndexError,只是返回一个空序列,这里返回空列表 []。
4.有如下Python代码段的运行结果为:(C):
b1=[1,2,3]
b2=[2,3,4]
b3 = [val for val in b1 if val in b2]
print (b3)
A.[1,2,3,4]
B.[2]
C.[2,3]
D.程序有误
解析:
遍历列表1然后遍历列表2两个有同样元素返回。
5.在Python3中,关于字符数组的运行结果为:(D)
names = ["Andrea", "Aaslay", "Steven", "Joa"]
lists = []
for name in names:
if name.count('a') >= 2:
lists.append(name)
print(lists)
A.[‘Andrea’, 'Aaslay', 'Joa']
B.[]
C.[‘Andrea’, 'Aaslay']
D.['Aaslay']
解析:
此题题意为:从名字的字符数组中找出名字中包含字母 ‘a’ 个数大于等于2个名字列表合集;首先对名字的字符数组进行遍历获取每一个名字,再通过 count() 函数判断名字中是否包含字母 ‘a’ 个数大于等于2个,将符合要求的名字字符存放到lists数组中(需要注意 ‘a’ 是区分大小写的),最后输出的 lists = ['Aaslay']。