这是一个使用嵌套列表和普通列表的简单点积(或总积)。
x1 = [[1, 1, 1], [9, 9, 9]]
x2 = [2, 2, 2]
M = [0]
result = []
for x in x1:
result.append(sum(a * b for a, b in zip(x, x2)))
结果
[6, 54]
但是,在涉及M中指定的索引m的条件下,我希望结果中的某些元素可能为None。
我想进行比较:对于每个x[m] < x2[m]
,附加的值应为None,而不是总和。
因此,使用上述示例的预期结果应该是:
result = [None, 54]
...因为1 <2为真,所以无
...并且9 <2为假,因此请追加总和,否则:54
一个要求是M的长度可以变化并且可以为空。
答案 0 :(得分:1)
仅在最后添加最终条件?
for m in M:
if x[m] < x2[m]:
result[m] = None
答案 1 :(得分:0)
使用列表理解, 仅对-
有效x2
有一个列表。M[0]
有一个元素。例如。
x1 = [[1, 1, 1], [9, 9, 9]]
x2 = [2, 2, 2]
M = [0]
result = []
for x in x1:
# return true if x[m] less than x2[m]
is_less = [(True if x[m] < x2[m] else False) for m in M][0]
#check is_less is true then append None into result list
if is_less:
result.append(None)
else:
result.append(sum(a * b for a, b in zip(x, x2)))
print(result)
O / P:
[None, 54]