【问题标题】:Reversing an Array, Python [duplicate]反转数组,Python [重复]
【发布时间】:2020-01-03 08:48:21
【问题描述】:

我对 python 很陌生。目前无法联系老师,尝试使用 HackerRank 自学。我意识到这是一个非常简单的问题,但是......

目前正在解决从用户输入或集合输入(即 4 个整数)反转数组的问题。

这是我目前的代码:

elements = [input("Enter an int: ") for i in range(4)]

arr = []

array = arr.append(elements)

print(arr)

我的第一个问题: 我从概念上不明白为什么“print(array)”会导致 None 而不是打印出整个数组序列。我意识到 arr.append 将输入存储在 arr 中,但是为什么它不能识别将整个内容存储在新的变量数组中。

我正在尝试反转数组,以便 [1, 2, 3, 4] 变为 [4, 3, 2, 1] 但是反转函数。,即,

print(reversed(arr))

不起作用。也没有:

a = arr.reverse()
print(a)

这只是输出无,不知道为什么。

此外,单词列表和数组(我认为它更像一个矩阵)似乎被人们互换使用,但我认为它们在概念上完全不同??

【问题讨论】:

  • 你可以使用 arr[::-1] 来反转一个数组
  • 该打印语句不会输出任何内容,您将附加分配给您从未尝试打印的不同变量,您在此处打印的打印语句将打印出一些内容
  • 1.) 并不是所有的函数都会返回一些东西,有些会修改给定的参数。 append() 是列表类的成员函数,它修改您调用它的列表实例。 python 中的 All 函数调用返回一些东西 - 如果没有明确返回任何东西,它们会返回 None - 因此 None 的来源:它的返回 arr.append(elements) 修改 @987654330 @“就地”并且什么都不返回 --> None.
  • 2.) HackerRank 可用作学习 pyhton 并使其更有趣的附加资源 - 而不是作为唯一资源 - 寻找 python 教程来学习基础知识,特别是如果您是编程新手。从docs.python.org/3/tutorial 开始,然后谷歌更多..
  • 3.) 如果您有任何问题,请先访问 duckduck/google/bing (site:python.org list.append),然后再访问 python 及其模块的 API 文档,您的问题 99.99% 都会得到解答那里:docs.python.org/3/tutorial/datastructures.html - 如果函数 returns 将在那里提到它,否则它不会。

标签: python arrays python-3.x list reverse


【解决方案1】:

而不是 print(reversed(arr)) 这行你设置了一个新的变量名 例如, new_arr=反转(arr) 打印(列表(new_arr))

【讨论】:

  • 您正在创建列表 [[1,2,3,4]] 的列表,因此,如果您反转此列表,您将获得与输出相同的列表。 ``` elements = [input("Enter an int: ") for i in range(4)] arr = [] arr.append(elements) print(arr) reversed_array = list(reversed(arr[0])) print (reversed_array) ```
  • 谢谢。没有意识到第一行,带有输入,将所有内容存储在一个列表中。
【解决方案2】:

您正在将一个列表附加到另一个列表并且“list1.append(1)”没有返回任何内容,它只是在列表 list1 中附加一个。因此当您执行“list2 = list1.append(1)”时没有任何结果从此返回的应该保存在 list2 中。 在 python 中,如果方法不返回任何内容,则默认返回 None,因此您在 list2 中得到 None 作为输出。 要反转数组,您可以使用以下代码。

elements = [input("Enter an int: ") for i in range(4)]

打印(arr[::-1])

【讨论】:

  • 谢谢,非常有帮助。我没有意识到元素变量本身存储为列表。这是我第一次使用存储输入的方式。
【解决方案3】:

您将整个“元素”数组附加到arr 数组的第一个元素,因此后者只有一个元素 - 反转的单元素数组与原始数组相同。

【讨论】:

  • 好的,谢谢!我没有意识到元素变量已经将输入存储为列表。我以前从未遇到过。
猜你喜欢
  • 2021-08-11
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多