1.在Python3环境中,下列程序运行结果为:()
trupls = [(1, 2), (2, 3, 4), (4, 5)] lists = [] for tru in trupls: for num in tru: lists.append(num) print(lists)
A.[1, 2, 3, 4, 5]
B.(1, 2, 2, 3, 4, 4, 5)
C.[1, 2, 2, 3, 4, 4, 5]
D.(1, 2, 3, 4, 5)
解析:
此题题意为:将元组构成的列表转换为一个全新的列表。第一层循环 tru 表示 trupls 中的每一个元组,第二个循环 num 为每一个元组中的元素,将num 添加到全新的列表 lists中,最后结果返回 [1, 2, 2, 3, 4, 4, 5]。
2.在python3中,程序运行结果为:(B)
truple = (1, 2, 3) print(truple*2)
A.(2,4,6)
B.(1, 2, 3, 1, 2, 3)
C.[1, 2, 3, 1, 2, 3]
D.None
解析:
在python3中,元组的 “*” 运算也表示元组复制组合,即(1, 2, 3) + (1, 2, 3),最后会生成一个新的元组:(1, 2, 3, 1, 2, 3)。
3.执行下列选项中的程序,输出结果为False的是:(B)
A.
t1 = (1,2,3) t2 = t1[:] print(t1 is t2)
B.
lis1 = [1,2,3] lis2 = lis1[:] print(id(lis1)==id(lis2))
C.
s1 = '123' s2 = '123' print(s1 is s2)
D.
a = 123 b = 123 print(id(a) == id(b))
解析:
Python中的不可变数据类型(数字、字符串、元组),不允许变量的值发生变化,如果改变变量的值,相当于新建一个对象,而对于相同的值的对象,在内存中则只有一个对象,即内存指向同一个地址;可变数据类型(列表、字典、集合),允许变量的值发生变化,如果对变量进行增删等操作后,只是改变变量的值,而不会新建一个对象,变量原引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址。
4.在Python3中,下列程序运行结果为:(C)
nums = set([1,2,2,3,3,3,4]) print(len(nums))
A.1
B.2
C.4
D.5
解析:
set先将列表转换成集合 去除列表内重复的元素,再利用len()函数计算结合内元素个数。
5.以下代码运行结果为:(A)
func = lambda x: x % 2 result = filter(func, [1, 2, 3, 4, 5]) print(list(result))
A.[1,3,5]
B.[1,2,1,0,1]
C.[1, 2, 3, 4, 5]
D.[1,2,3]
解析:
filter(function, iterable)函数是Python中的高阶函数, 第一个参数是一个筛选函数, 第二个参数是一个可迭代对象, 返回的是一个生成器类型。以上程序可以简化为:result = filter(lambda x: x % 2, [1, 2, 3, 4, 5]) ,filter()把传入的function依次作用于iterable的每个元素, 满足条件返回True, 不满足条件返回False, 所以对2和4取余为0也就是False舍弃,1.3.5取余为1也就是True保留。