正如主题所述:
list = ["a", "b"]
element = "ac"
我可以使用:
if element in list:
如果element等于(list +“c”)中的元素
伪代码到我想要达到的目的:
if element in (list+c)
在python中获取此行为的最佳方法是什么?
编辑:我知道有很多方法可以解决这个问题,但是可以像上面的代码一样在一行中完成。
答案 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
(或int
,float
,map
,tuple
等)绝不是一个好习惯,因为你正在失去那些内置类型。
答案 2 :(得分:0)
if element[0] in list:
您不希望将"c"
添加到列表中的每个项目,并检查"ac"
是否在重新开始;你想检查"ac"
的第一个字母是否在列表中。除了更容易之外,这是同样的事情。
答案 3 :(得分:0)
if element[:-1] in list:
最好不要使用'c'来计算元素。所以你只做了一次计算。