是否有一种优雅的 Pythonic 方式来在列表上执行类似
rstrip()
的操作?
想象一下,我有不同的清单:
l1 = ['A', 'D', 'D']
l2 = ['A', 'D']
l3 = ['D', 'A', 'D', 'D']
l4 = ['A', 'D', 'B', 'D']
我需要一个函数,可以从给定列表中删除 所有 end-standing
'D'
元素(但不是那些位于其他元素之前或之间的元素!)。
for mylist in [l1, l2, l3, l4]:
print(mylist, ' => ', remove_end_elements(mylist, 'D'))
所以期望的输出是:
['A', 'D', 'D'] => ['A']
['A', 'D'] => ['A']
['D', 'A', 'D', 'D'] => ['D', 'A']
['A', 'D', 'B', 'D'] => ['A','D','B']
处理这个问题最有效/最优雅的方法是什么?
将列表中的元素连接到字符串中,应用
rstrip
并再次拆分。例如:
l_ex = ['What', 'is', 'Door', '?', 'Door', 'Door']
print('|'.join(l_ex).rstrip('|Door').split('|'))
输出
['What', 'is', 'Door', '?']