正如主题所述:
list = ["a", "b"]
element = "ac"
我可以使用:
if element in list:
如果元素等于 (list + "c") 中的元素
我想要实现的伪代码:
if element in (list+c)
在 python 中获得这种行为的最佳方法是什么?
编辑:我知道有很多方法可以解决这个问题,但是可以像上面的代码那样在一行中完成。
正如主题所述:
list = ["a", "b"]
element = "ac"
我可以使用:
if element in list:
如果元素等于 (list + "c") 中的元素
我想要实现的伪代码:
if element in (list+c)
在 python 中获得这种行为的最佳方法是什么?
编辑:我知道有很多方法可以解决这个问题,但是可以像上面的代码那样在一行中完成。
更有效的是:
if any(x+'c' == element for x in your_list):
因为它避免了两次扫描列表(一次用于制作“+c”版本,一次用于检查元素是否在结果列表中)。如果它在遍历整个列表之前找到元素,它也会“短路”(即快速继续)。
PS - 最好不要命名变量list
,因为这已经是实际列表类型的名称。
if element in [elem + 'c' for elem in my_list]:
# ...
调用变量list
(或int
, float
, map
,tuple
等)绝不是一个好习惯,因为您正在失去那些内置类型。
if element[0] in list:
您不想添加"c"
到列表中的每个项目并检查是否"ac"
在结果中;您想检查第一个字母"ac"
是否在列表中。除了容易得多之外,这是相同的事情。
if element[:-1] in list:
最好计算没有'c'的元素。所以你只做一个计算。