【问题标题】:unsupported operand type(s) for /: 'list' and 'int' Python/ 不支持的操作数类型:'list' 和 'int' Python
【发布时间】:2018-07-09 23:42:50
【问题描述】:

我收到以下错误:

/ 不支持的操作数类型:'list' 和 'int'

我该如何解决这个问题?有什么想法吗?

这是我的代码中存在错误的部分(在 cons_frac 中):

    sun_x = list(np.logspace(0, np.log10(46050), 100))
    cons_frac = (sun_x / 46050)

我试过了,但没用:

    sun_x = list(np.logspace(0, np.log10(46050), 100))
    cons_frac = []
    cons_frac.append(sun_x / 46050)

【问题讨论】:

  • 考虑到[1, 2] * 3 表示[1, 2, 1, 2, 1, 2],如果这不是错误,它可能不是你想要的。

标签: python list int


【解决方案1】:

我不认为你真的想要一个列表,这里。 np.logspace 已经返回了一个 Numpy 数组,所以继续写吧:

sun_x = np.logspace(0, np.log10(46050), 100)
cons_frac = (sun_x / 46050)

Python 中的 List 是一种包含任何类型的其他对象的类型。它们不支持像 Numpy 数组那样的矢量化操作,因为这不是它们的本意。

【讨论】:

    【解决方案2】:

    使用np.array 代替list

    sun_x = np.logspace(0, np.log10(46050), 100)
    

    您不能直接将 list 中的元素除以 int,但可以使用 numpy 数组。

    【讨论】:

    • 我想你的意思是np.array(...)np.logspace 已经返回了一个数组,所以没有必要。
    • @AlexReinking 感谢您的反馈,刚刚编辑过 :)
    • 啊,我写的时候你的更改还没有加载。
    猜你喜欢
    • 2018-10-19
    • 2017-01-30
    • 1970-01-01
    • 2012-12-12
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多