【问题标题】:Python only printing last element of the listPython 只打印列表的最后一个元素
【发布时间】:2017-09-06 14:10:27
【问题描述】:

我是使用 Jupyter Notebook 的 Python 新手,遇到以下问题:

我创建了 2 个非常简单的列表,并将它们分配给各自的变量,效果很好。

我的代码如下:

x = [-2,1,3]
y = [-1,1,2]

然后我执行其他一些简单的代码,包括使用 Matplotlib 用列表中的值绘制图表,并将列表中的每个元素相乘。

但是,我注意到当我在初始化它们后尝试打印原始列表时,我只从列表中获取最后一个元素作为整数,而不是列表形式。我觉得这很奇怪,因为我没有对列表进行任何更改。 这个问题并不突出,因为我仍然可以继续使用原始形式的列表,例如绘制图表,但我想知道为什么会这样,希望能加强我的 Python/编程知识......

我添加了屏幕截图以更清楚地显示我的问题,但如果我没有说清楚,请让我解释任何事情。

提前谢谢大家!!

【问题讨论】:

  • 8893 之前进行了评估,因此x 已从int 变为list
  • 谢谢,我实际上没有意识到左边的数字意味着代码是按那个顺序执行的。在其他人看来,这似乎很明显,因为我是一个新手......我想我现在明白这个问题了,但是第 88 行的输出首先来自哪里?
  • @fashioncoder 可能是 x=3 声明
  • 如果你是 'Kernel' -> 'Restart & Run All',然后向我们提供输出。由于您的 In/Out 编号不是连续的,看起来您已将 3 分配给 x,将其打印出来,然后重新分配给它一个列表。

标签: python jupyter-notebook


【解决方案1】:

我认为您的 Jupyter 输出存在问题,因为您从第 93 行传递到第 88 行,而我们看不到您使用的指令。

【讨论】:

    【解决方案2】:

    我可能错了,但您的问题是您在第 85 行为迭代器和序列提供了相同的名称。而不是这样做:

         xy = [x*y for x,y in zip(x,y)]
    

    试试这个:

         xy = [i*j for i,j in zip(x,y)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      • 2022-07-19
      • 1970-01-01
      相关资源
      最近更新 更多