2

正如主题所述:

list = ["a", "b"]

element = "ac"

我可以使用:

if element in list: 

如果元素等于 (list + "c") 中的元素

我想要实现的伪代码:

if element in (list+c)

在 python 中获得这种行为的最佳方法是什么?

编辑:我知道有很多方法可以解决这个问题,但是可以像上面的代码那样在一行中完成。

4

4 回答 4

6

更有效的是:

if any(x+'c' == element for x in your_list):

因为它避免了两次扫描列表(一次用于制作“+c”版本,一次用于检查元素是否在结果列表中)。如果它在遍历整个列表之前找到元素,它也会“短路”(即快速继续)。


PS - 最好不要命名变量list,因为这已经是实际列表类型的名称。

于 2012-04-05T05:11:58.347 回答
1
if element in [elem + 'c' for elem in my_list]:
    # ...

调用变量list(或int, float, map,tuple等)绝不是一个好习惯,因为您正在失去那些内置类型。

于 2012-04-05T05:11:04.430 回答
0
if element[0] in list:

您不想添加"c"到列表中的每个项目并检查是否"ac"在结果中;您想检查第一个字母"ac"是否在列表中。除了容易得多之外,这是相同的事情。

于 2012-04-05T06:14:00.237 回答
0
if element[:-1] in list:

最好计算没有'c'的元素。所以你只做一个计算。

于 2012-04-05T06:27:42.523 回答