牛客网专项练习30天Pytnon篇第17天

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 牛客网专项练习30天Pytnon篇第17天

1.在python3运行环境下,执行以下选项中的代码,其输出结果不为[2,4,6,8,10]的是:(D)


A.

a = [1,2,3,4,5,6,7,8,9,10]
print(a[1::2])

B.

a = [1,2,3,4,5,6,7,8,9,10]
lis = []
for i in a:
    if i % 2 == 0:
        lis.append(i)
print(lis)

C.

a = [1,2,3,4,5,6,7,8,9,10]
print(list(filter(lambda x:x % 2 ==0,a)))

D.

a = [1,2,3,4,5,6,7,8,9,10]
def is_odd(n):
    return n % 2 == 0
print(list(filter(is_odd(),a)))

解析:


      D选项会抛出一个缺少位置参数的异常,实际上这里调用的是函数本身,是整个函数体,不需要等待函数执行完成,所以调用时不需要加小括号,正确的调用方式为print(list(filter(is_odd,a)))。


2.在Python3中,下列程序运行结果为:(A)

lists = [1, 2, 3, 4]
tmp = 0
for i,j in enumerate(lists):
    tmp += i * j
print(tmp)

A.20


B.30


C.100


D.None


解析:


      Python3中,enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中,所以程序中表示返回列表的元素和对应下标乘积的累加求和。


3.执行以下程序,输出结果为:(D)

lis = ['apple','lemon','pear','peach']
def fn(x):
return x[::-1]
lis.sort(key=fn,reverse=True)
print(lis)

A.['apple', 'lemon', 'peach','pear']


B.['pear', 'peach', 'lemon', 'apple']


C.['apple','pear', 'lemon', 'peach']


D.['pear', 'lemon', 'peach', 'apple']


解析:


      参数key=fn,而fn函数的执行效果就是根据元素的逆序后的字符串排序,参数reverse=True表示按照降序进行排序,因此答案为D。


4.执行下列选项的程序,输出结果为True的是:(B)


A.

lis = [1,3,2]
a = id(lis)
lis = sorted(lis)
b = id(lis)
print(a==b)

B.

lis = [1,3,2]
a = id(lis)
lis += [4,5]
b = id(lis)
print(a==b)

C.

tup = (1,3,2)
a = id(tup)
tup += (4,5)
b = id(tup)
print(a==b)

D.

tup = (1,3,2)
a = id(tup)
tup = sorted(tup)
b = id(tup)
print(a==b)

解析:


      使用sorted()进行排序会生成新的序列,生成的新序列和原序列id值必然不同。对于可变对象,sorted()进行排序时原序列也发生变化,而本题A中用lis保存了生成的新序列,因此AD选项输出结果均为False;对于+=操作,如果是可变对象,则操作前后序列的id值不变,如果是不可变对象,则操作前后序列的id值改变,故B正确。


5.在Python3中,下列程序运行结果为:(A)

strs = ['a', 'ab', 'abc', 'python']
y = filter(lambda s: len(s) > 2, strs)
tmp = list(map(lambda s: s.upper(), y))
print(tmp)

A.['ABC', 'PYTHON']


B.['abc', 'PYTHON']


C.['abc', 'python']


D.['a', 'ab']


解析:


      此题题意为:过滤掉字符串 strs 中长度小于等于2的字符,并将剩余的字符转换为大写输出。首先,python3中的 filter(function, iterable) 函数,function -- 判断函数,iterable -- 可迭代对象,其中 lambda s: len(s) > 2 表示判断字符串的长度是否大于2,迭代对象为 strs接着,使用 map 函数将第一步过滤之后的字符转换为大写,upper() 为字符大写转换函数,最后采用 list() 将其转换为列表输出为 ['ABC', 'PYTHON']。


相关文章
|
索引 Python
牛客网专项练习30天Pytnon篇第22天
牛客网专项练习30天Pytnon篇第22天
117 0
|
存储 Python
牛客网专项练习30天Pytnon篇第21天
牛客网专项练习30天Pytnon篇第21天
60 0
|
索引 Python
牛客网专项练习30天Pytnon篇第18天
牛客网专项练习30天Pytnon篇第18天
87 0
|
索引 Python
牛客网专项练习30天Pytnon篇第15天
牛客网专项练习30天Pytnon篇第15天
59 0
|
机器学习/深度学习 索引 Python
牛客网专项练习30天Pytnon篇第06天
牛客网专项练习30天Pytnon篇第06天
63 0
|
Python
牛客网专项练习30天Pytnon篇第02天
牛客网专项练习30天Pytnon篇第02天
88 0
|
Java 索引 Python
牛客网专项练习30天Pytnon篇第11天
牛客网专项练习30天Pytnon篇第11天
93 0
|
Python
牛客网专项练习30天Pytnon篇第19天
牛客网专项练习30天Pytnon篇第19天
56 0
|
索引 Python
牛客网专项练习30天Pytnon篇第16天
牛客网专项练习30天Pytnon篇第16天
80 0
|
Python
牛客网专项练习30天Pytnon篇第28天
牛客网专项练习30天Pytnon篇第28天
102 0