gpt4 book ai didi

java - Python 数组与 Java 中的相同吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:26 25 4
gpt4 key购买 nike

我的类(class)有一项任务是用 Java 和 Python 实现一些东西。我需要用两种语言实现一个 IntegerStack。所有的值都应该保存在一个数组中,并且有一些元数据值,如 head() 索引。

当我实现这是 Java 时,我只是创建一个具有最大大小(我选择)的数组:

public class IntegerStack {
public static int MAX_NUMBER = 50;
private int[] _stack;
private int _head;

public IntegerStack() {
_stack = new int[MAX_NUMBER];
_head = -1;
}

public boolean emptyStack() {
return _head < 0;
}

public int head() {
if (_head < 0)
throw new StackOverflowError("The stack is empty."); // underflow

return _stack[_head];
}
// [...]
}

我真的不确定如何在 Python 中执行此操作。我查看了一些教程,他们都说 python 中的数组具有语法 my_array = [1,2,3]。但它是不同的,因为我可以将它用作 List 并根据需要添加项目。所以我可以制作一个 for 循环并将 50 个零元素初始化为 Python 数组,但这是否与 Java 中的相同?我不清楚 Python 列表与数组有何不同。

最佳答案

首先,您需要区分 Python 中的数组和列表。你这里说的是list类,但是有actual arrays它们或多或少与 Java 中的数组相同。

Python 的 list 类似于 Java 的 ArrayList 和 C++ 的 std::vector

换句话说,这里有三种可能的解决方案:

  1. 使用简单的 list 并向其添加元素。
  2. 使用 python 的 array,它最接近 Java 的数组。
  3. 使用 python 的 deque .

关于list的使用,如果你的目标是用N个空元素初始化它,你可以做的是:

N = 10     # or any other number
my_list = [0] * N # 0 is the element here for the list to be filled with

或者更奇特的方法

from itertools import repeat
my_list = list(repeat(0, N))

关于java - Python 数组与 Java 中的相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58971323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com