【问题标题】:Python Insert values one-by-one through looping in an arrayPython通过在数组中循环逐一插入值
【发布时间】:2020-11-18 01:07:46
【问题描述】:

[更新:修正 PHP 和 Python 代码的一些错误]

我有一个简单的要求。在 PHP 中,我可以通过简单地编写 $sample[10] = "Sample" 来声明将插入值的索引。要插入多个值,我将创建一个 for 循环,在每个循环中,一个值将被插入到数组中。下面写的是该代码的示例,但在我使用拆分字符串数组的长度进行循环时进行了一些更改:

$toexp = str_split("Hello World");
$array = array();
for ($x = 0; $x < count($toexp); $x++){
    $array[$x] = $toexp[$x]; //sample value only
    echo $array[$x];
}

我尝试在 Python 中创建类似的代码

samplearray = []
splits = list("Hello World")
for p in splits:
    samplearray.extend(p)
    print(samplearray[1])

但是,弹出一个错误:

print(samplearray[1])
IndexError: list index out of range

这是否意味着该值仅在索引 0 处插入?如果我打印 samplearray[0] 不会发生错误,它会打印出该索引中的值。请向我解释如何将代码从 PHP 复制到 Python。提前谢谢!

【问题讨论】:

  • 暂时让我们ignore PHP。你想做什么?在数组中的任意位置插入元素?将项目附加到数组?
  • 在第一次迭代中,索引 1 处没有任何内容。您需要 print(samplearray[x])
  • @jarmod 在任意位置插入元素。对不起,我忘了补充一点,我不知道如何在 PHP 中实现这一点,所以我简单地尝试了 extend()
  • 您的 PHP 代码中有很多错误。第一个:爆炸总是带两个参数。第二:$array = (); 并不代表什么,你应该写$array = array();。第三:忘记了第 7 行末尾的分号。
  • @Aaron_Actu 对于这些错误,我深表歉意。我只是在脑海中写了一个代码。应该先测试它,但无论如何。我来更新一下

标签: python arrays loops


【解决方案1】:

extend 从迭代器扩展了一个数组,在这种情况下,这不是你想要的。与 PHP 不同,Python 不允许您在数组末尾的任意元素处插入。但是,由于您总是在数组末尾插入,您可以使用 append 方法添加额外的元素:

samplearray = []
x = 0
for p in "Hello world":
    samplearray.append(x + 1)
    print(samplearray[x])
    x += 1

【讨论】:

  • 但是如何在数组中插入“Hello world”的每个拆分?会不会是这样的:samplearray.append(p)
  • 是的。
猜你喜欢
  • 2012-06-04
  • 1970-01-01
  • 2019-11-18
  • 2018-06-29
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 2016-02-02
  • 1970-01-01
相关资源
最近更新 更多