编写一个名为rev的递归函数,它反转数组

时间:2016-05-02 10:42:29

标签: python

我是这个编码平台的新手。

所以我有一项工作要做,就是递归地反转数组中元素的顺序。

所以这就是我所做的:

A= [4,2,7,3,9,1]

def rev(A):
    if (len(A)==1):
        return A[0]
    else:
        return A[-1],pri(A[:-1])
print (rev(A))
  

输出:

     

(1,(4,(2,(7,(3,9)))))

所以我不明白我做错了什么,如果你能做到这一点我想做输出;而不是()的东西。 我必须在python 3.0或更高版本中执行该程序。

谢谢。

3 个答案:

答案 0 :(得分:2)

你几乎得到了它。 问题是你返回int(在第一个return语句中)和一个元组(在第二个return语句中)而不是列表:

li = [1, 2, 3]

def rev(li):
    if len(li) == 1:
        return [li[0]]
    return [li[-1]] + rev(li[:-1])

print('; '.join(map(str, rev(li))))

已编辑以反映所需的输出格式。

答案 1 :(得分:0)

Python中已存在的函数:

a = [4,2,7,3,9,1]

print a[::-1]
# [1, 9, 3, 7, 2, 4]

a.reverse()
print a
# [1, 9, 3, 7, 2, 4]

答案 2 :(得分:0)

执行以下操作:

 public class ReservationViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
    // each data item is just a string in this case
    CardView cardView;

    public ReservationViewHolder(View v) {
        super(v);
        cardView = (CardView) v.findViewById(R.id.cv);
        cardView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int position = getAdapterPosition();
        // do what you want...
    }
}

如下工作:

A= [4,2,7,3,9,1]

def rev(A):
    if len(A)==1:
        return A[0]
    lst = rev(A[:-1])
    return str(A[-1]) + ';' + str(lst)

print rev(A)