【问题标题】:How to append data in an empty array using Python [duplicate]如何使用 Python 在空数组中追加数据 [重复]
【发布时间】:2015-08-08 11:25:10
【问题描述】:

我希望收集有关我正在尝试使用 python 做什么的见解:所以我的函数中有这个数组,它每次都动态变化。我想要做的是收集多维数组数据并将它们放在一起作为一个数组。到目前为止,这是我一直在尝试的。

代码:

def myFunction(data,topic)
         data = data
         topic = topic
         pushed_data = []

         for ctr in range(len(data)):

             new_data = pushed_data.append([ctr]['topic'])

         print new_data

输出:

None

所以我相信“无”对应于未成功传递给空数组的数组。所以我想要的内容是

首选输出:

['topic1','topic2','topic3']

所以如果可以在不使用其他 python 库的情况下实现这一点,那就太好了。

【问题讨论】:

  • 这些topic1等来自哪个列表?
  • "所以我相信None 对应的数组未成功传递给空数组。"这种信念是不正确的..
  • @AnandSKumar 这将来自动态生成数据的数据变量
  • @TigerhawkT3 那你会怎么称呼它?能详细点吗?
  • 尝试打开解释器,输入my_list = [1,2,3],然后输入my_return = my_list.append(4),然后输入print(my_list)print(my_return)

标签: python arrays


【解决方案1】:

您的代码中的主要问题来自该行 -

new_data = pushed_data.append([ctr]['topic'])

list.append() 是一个就地操作,它不返回任何内容,这意味着它默认返回None,这就是为什么new_data 始终为None。取而代之的是,您只想做-pushed_data.append(...)-而不将返回变量分配给任何东西。然后你想打印 pushed_data ,而不是 new_data

其次,我不确定这应该是什么 -

[ctr]['topic']

理想情况下,这应该会给您一个错误,例如 - list indices must be integers, not str - 如果您想从 data 中的每一行获取 topic 索引,那么您应该这样做 -

pushed_data.append(data[ctr][topic])

如果 data 包含字典(如果 data 是字典列表)并且您确实想要键 'topic' 的值,请改用 - data[ctr]['topic']

一个更简单的方法是直接迭代 data 的元素,而不是获取它的长度并迭代 index ,因为你真的不需要索引来做其他事情。示例 -

for elem in data:
    new_data = pushed_data.append(elem[topic])

另外,你不需要这样做 -

data = data
topic = topic

这没有任何作用。

同样可以通过列表理解实现 -

def myFunction(data,topic)
     pushed_data = [elem[topic] for elem in data]
     print(pushed_data)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2020-09-21
    • 2020-04-04
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多