问题描述
我想用一个输入数组参数创建一个函数,然后从第1、4和6个元素返回一个数组。
这是我到目前为止提出的。所以基本上我想打印a,d,f
def something(paramOne):
result = [paramOne[1,4,6]]
return result
print(something(['a','b','c','d','e','f']))
解决方法
问题:任何可迭代的索引都应该是整数,您要提供一个列表
修正:浏览列表,如果索引(i + 1使它成为1索引)在我们的列表中,则将其添加到结果中
def something(paramOne):
# result = [paramOne[1,4,6]] >>> Index of any iterable should be an integer,you are giving a list
result = [v for i,v in enumerate(paramOne) if i+1 in [1,6]] # here i am going through the list and if the index(i+1 to make it 1 indexed) is in our list add it to the result
return result
print(something(['a','b','c','d','e','f']))
['a','f']
,
使用列表理解来提取所需的元素。
def something(paramOne):
select_list = [1,6]
return [paramOne[i-1] for i in select_list]
print(something(['a','f']))
输出:
['a','f']