【发布时间】:2020-01-23 23:20:07
【问题描述】:
我有以下问题。我想有条件地形成一个列表a。
假设我有一个变量add_string,如果它是True,那么
a = ["a","b","Added String","c"]
其他
a = ["a","b","c"]
最好的方法是什么?我可以通过以下方式做到这一点
a = ["a","b","c"]
if add_string:
a.insert(2,"Added String")
但这并不理想,因为列表a 将来可能会更改,我将不得不更改插入函数中的索引。我还有一个条件——这个添加的字符串应该总是跟在“b”之后。另一种解决方案是在列表中搜索“b”,然后在之后插入,但这会增加复杂性并且很难看。
理想情况下,我认为应该是这样的
a = ["a","b",if add_string then "Added String","c"]
【问题讨论】:
-
这听起来像XY problem。您认为需要采用这种方法的原因是什么?
-
这正是我想要实现的。当然,列表名称和值是不同的。但基本上我试图在函数 X 中形成一个对象列表。这个函数是从另一个函数 Y 调用的。传递的参数之一是我必须添加到列表中的那个对象。有时这个对象被传递,有时没有。目前我正在使用插入。所以我想知道我是否可以通过其他方式做到这一点。
标签: python list if-statement