假设我有一个这样的列表列表
lol = [[1, 'e_r_i'], [2, 't_u_p']]
我想对字符串元素应用一个函数,它返回几个值,我只需要一个子集(每个用例不同)。为了便于说明,我只是做一个简单的split()
操作:
def dummy(s):
return s.split('_')
现在,假设我只想要最后两个字母并将它们连接起来;有一个简单的选择
positions = []
for _, s in lol:
stuff = dummy(s)
positions.append(f"{stuff[1]}{stuff[2]}")
并在列表理解中做同样的事情
print([f"{dummy(s)[1]}{dummy(s)[2]}" for _, s in lol])
两者都给出相同的期望结果
['ri', 'up']
有没有办法在列表理解中使用海象运算符来避免调用dummy
两次?
PS:不用说,实际上这个dummy
函数要复杂得多,所以我没有寻找更好的解决方案,split
但它完全是关于海象运算符的结构和潜在用途。