【发布时间】:2020-10-06 12:27:20
【问题描述】:
我希望根据第三个列表 (ListA) 的布尔值将文本从一个列表 (ListC) 添加到另一个列表 (ListB)。所以 ListB 的所有元素都会得到一个加法,但它会根据 ListA 的索引而变化。仅当 ListA 中的索引为 True 时才会发生更改。
ListA = [True, False, True, False, False, False, True]
ListB = ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7']
ListC = ['s1', 's2', 's3']
预期的最终结果将是一个 listD(请参阅 List D 的第一个和第二个元素具有 s1 和 s2 仅在第三个元素上输入,因为 ListA 是 True、False、True):
ListD = ['s1 + T1', 's1 + T2', 's2 + T3', 's2 + T4', 's2 + T5', 's2 + T6', 's3 + T7']
想法是替换现有代码:
for i in range(0,2):
ListD[i] = 's1' + ListB[i]
for l in range (2,5):
ListD[l] = 's2' + ListB[l]
for w in range(5,7):
ListD[w] = 's3'+ ListB[w]
关于如何做到这一点的任何建议?
感谢您的帮助!
【问题讨论】:
-
你确定输出,为什么 s1+T2 存在,即使列表 A 在第二个索引处有错误值?
-
如果我理解正确的话,listA 中的任何 True 都意味着我们将添加值(在 ListB 上)更改为 listC 右侧的一个位置?
-
看起来输入和输出结果不一致。可能最后一个 True 应该在 ListA 中,而不是在最后一个位置,而是在最后一个位置。
-
我不明白获取
listD的逻辑。此外,您从未在代码中使用过listA,那么它是干什么用的? -
ListA 是更改使用哪个 ListC 的触发器。只要 ListA 索引为 True,就会使用新的 ListC 元素。换句话说,ListA as False 不会改变 ListC 中要使用的元素。
标签: python