【问题标题】:Printing final list in variable在变量中打印最终列表
【发布时间】:2021-11-11 20:27:02
【问题描述】:

我正在学习 Python 编程面试元素,我正在尝试为数组章节中的第一个问题找到替代解决方案。 这个想法是,您要编写一个程序,将数组 A 和索引 i 放入 A 并重新排列元素,使得所有小于 A[i] 的元素首先出现,然后是等于枢轴的元素,然后是大于枢。在书中,他们已经提供了一个解决方案,但我正在尝试找出一个替代方案。简而言之,我正在为每个方面创建子数组,例如小于、等于和大于 A[i]。目前,我正在存储小于枢轴的 A 的整数值。我想遍历 A 的列表并将所有小于枢轴的元素的值存储在较小的(变量)中。这个想法是最终返回变量更小,它将包含所有小于枢轴的值。为了检查我的工作,我使用了 print 函数来检查较小的值。它存储的每次迭代都小于该变量中的枢轴。理想情况下,使用这种方法我只想返回较小变量的最终迭代,而不是每次迭代。我的下一步应该是什么?希望这是有道理的,我真的不介意详细说明任何部分。提前致谢。

def properArray(pivot_index, A):
    pivot = A[pivot_index]
    smaller = []
    for i in range(len(A)):
        if A[i] < pivot:
            smaller.append(A[i])
            print (smaller)

resized_array =properArray
resized_array(3, [1,5,6,9,3,4,6])

【问题讨论】:

  • 如果我理解正确,只需将print 去掉,这样它只会在循环完成后发生一次。
  • 你应该让函数最后返回smaller,然后使用print(resized_array(...))
  • @0x5453 就是这样。谢谢

标签: python list python-3.10


【解决方案1】:

我想这就是你想要实现的目标

def properArray(pivot_index, A):
     pivot = A[pivot_index]
     smaller = []
     for i in range(len(A)):
         if A[i] < pivot:
             smaller.append(A[i])
     print (smaller)

resized_array =properArray
resized_array(3, [1,5,6,9,3,4,6])

不是每次迭代都打印smaller数组,而是需要在for循环完成后打印一次

【讨论】:

  • 这正是它谢谢我很好奇你能解释一下 print 函数的 dedent 的目的。此外,为什么它在这种情况下有效
  • @Don_de.coder 空格在 python 中很重要。如果print 是缩进的,它将在循环体内,因此它将在循环的每次迭代中执行。如果是dedented,就会在循环体之外,只会在循环完成后执行一次。
猜你喜欢
  • 2018-02-05
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2016-06-07
  • 1970-01-01
  • 2013-05-12
  • 2016-01-08
  • 1970-01-01
相关资源
最近更新 更多