【问题标题】:How do I define a function with an input array parameter如何使用输入数组参数定义函数
【发布时间】:2020-12-30 12:16:09
【问题描述】:

我想用一个输入数组参数创建一个函数,然后从第 1、第 4 和第 6 个元素返回一个数组。

这是我迄今为止想出的。所以基本上我想打印 a,d,f

def something(paramOne):
    result = [paramOne[1,4,6]]
    return result

print(something(['a','b','c','d','e','f']))

【问题讨论】:

  • 试试result = [paramOne[i-1] for i in [1,4,6]]。 list 不支持多索引。

标签: python arrays function parameters


【解决方案1】:

使用列表推导提取你想要的元素。

def something(paramOne):
    select_list = [1,4,6]
    return [paramOne[i-1] for i in select_list]

print(something(['a','b','c','d','e','f']))

输出:

['a', 'd', 'f']

【讨论】:

    【解决方案2】:

    问题:任何可迭代的索引都应该是一个整数,你给出的是一个列表

    修复:遍历列表,如果索引(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,4,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', 'd', 'f']
    

    【讨论】:

      猜你喜欢
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 2018-07-15
      相关资源
      最近更新 更多