如果是一个列表(我想在列表中的元素中添加一些内容)Python

时间:2012-04-05 05:08:58

标签: python syntax if-statement

正如主题所述:

list = ["a", "b"]

element = "ac"

我可以使用:

if element in list: 

如果element等于(list +“c”)中的元素

伪代码到我想要达到的目的:

if element in (list+c)

在python中获取此行为的最佳方法是什么?

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

4 个答案:

答案 0 :(得分:6)

效率更高:

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

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


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

答案 1 :(得分:1)

if element in [elem + 'c' for elem in my_list]:
    # ...

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

答案 2 :(得分:0)

if element[0] in list:

您不希望将"c"添加到列表中的每个项目,并检查"ac"是否在重新开始;你想检查"ac"的第一个字母是否在列表中。除了更容易之外,这是同样的事情。

答案 3 :(得分:0)

if element[:-1] in list:

最好不要使用'c'来计算元素。所以你只做了一次计算。