python习题003--接收一个包含若干数的列表参数lst,返回一个元组,其中第一个元素为列表lst中的最小值,其余元素为最小值在列表lst中的小标索引。

目录

一,题目展示: 

二,给定条件,使用到map函数

三,不使用map函数


 

一,题目展示: 

二,给定条件,使用到map函数

观察给定的条件(代码),大家可能会认为使用到了集合的嵌套list(map(func,data)),然而并不是,这里的map并没有创建一个map映射集合,而是返回了一个迭代器,该迭代器和集合密不可分,它在集合中充当一种工具,可以让我们很方便的对集合进行相关的处理和操作。拿这道题中的map函数来说,它需要传入两个参数,第一个参数是函数,该函数用于第二个传入的参数序列的计算。

当我们往map函数中分别传入 float和列表序列的时候,map函数就会将列表序列中的所有元素以此转换成float类型的数据,并会返回一个迭代器iterator。这个时候我们就可以使用list来将其转换成列表,并使用一个变量来接收即可:

# -*- encoding: utf-8 -*-
"""
@author:码到成龚
motto:"听闻少年二字,应与平庸相斥。"
"""
if __name__ == '__main__':# 1 2 3 4 1 2 1:测试lst = input().split(" ")  # 输入字符串,并按照空格分开float_list_input = list(map(float, lst))  # map函数可以将列表中的元素都转换成float类型的数据,并使用list集合包裹,形成列表def func(float_list_input):  # 定义一个函数,传入的参数为含有浮点型数据的列表tup = (min(float_list_input),)  # 定义一个列表,并将列表中最小的元素添加进去for i in range(len(float_list_input)):if float_list_input[i] == min(float_list_input):  # 遍历列表,判断该值和最小值是否一样tup += (i,)  # 将符合条件的索引添加到元组中return tup  # 函数的返回值为tup元组print(func(float_list_input))

三,不使用map函数

如果我不按照题目已经给出的条件来编写的代码的话,我写出来的代码应该使下面这样的:

# -*- encoding: utf-8 -*-
"""
@author:码到成龚
motto:"听闻少年二字,应与平庸相斥。"
"""
if __name__ == '__main__':lst=input().split(" ")           # 输入字符串,并按照空格分开def func(lst):                   # 定义方法tu=(float(min(lst)),)   # 先向元组中传入第一个元素,并将该元素转换成float类型for i in range(len(lst)):    # 遍历列表if lst[i]==min(lst):     # 找到最小的元素在列表中哪些位置出现过tu+=(i,)             # 添加进元组return  tu                   # 返回元组print(func(lst))                 # 调用方法

,其实两个都一样,大同小异,只是在比较两种方法的时候,感觉还是之前的map函数用得妙,这里就只供参考,如果觉得有什么疑问的可以在评论区留言。 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部