从 Python 列表中删除某些最终值

问题描述 投票:0回答:1

是否有一种优雅的 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']

处理这个问题最有效/最优雅的方法是什么?

python list
1个回答
-1
投票

将列表中的元素连接到字符串中,应用

rstrip
并再次拆分。例如:

l_ex = ['What', 'is', 'Door', '?', 'Door', 'Door']
print('|'.join(l_ex).rstrip('|Door').split('|'))

输出

['What', 'is', 'Door', '?']
© www.soinside.com 2019 - 2024. All rights reserved.