【问题标题】:Add number one to a python list when the dimensions doesn't match当尺寸不匹配时,将第一名添加到 python 列表中
【发布时间】:2019-02-14 20:09:54
【问题描述】:

使用numpy 是否重要?但是我尝试使用它并没有成功。

这是代码:

c = []
a = list(range(10))
c.append(a)
b = list(range(5))
c.append(b)

如何将1添加到c的所有元素中?

【问题讨论】:

  • ab 应该是两个不同的列表吗?到目前为止,您有一个包含两个列表的列表,您可以使用列表推导为每个元素添加一个。如果是这种情况,请在下面查看我的答案...
  • c 是一个包含 2 个列表的列表。没有为列表定义“添加 1”。显示c 并显示您想要的结果。

标签: python arrays list numpy add


【解决方案1】:

你可以这样做。

c = [[sum(x) for x in zip(y, [1]*len(y))] for y in c]

【讨论】:

  • 使用问题中的示例列表对我不起作用。我收到错误消息:“TypeError:+ 的不支持的操作数类型:'int' 和 'list'”
【解决方案2】:

我们可以使用两个列表推导式来做你想做的事。外层循环遍历c中的列表,内层循环遍历c的每个列表中的值:

c = []
a = list(range(10))
c.append(a)
b = list(range(5))
c.append(b)

[[val+1 for val in list] for list in c]

【讨论】:

  • 谢谢,我正在寻找一个像函数或.+ 像 matlab 这样的直截了当的答案!!!!!
  • 您将如何在 MATLAB 中执行此操作?在 Octave 中,我必须制作两个矩阵的 cell。但随后它抱怨“+”运算符是为cellscalar 定义的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 2014-12-14
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多