【发布时间】:2020-04-02 06:06:35
【问题描述】:
我正在寻找一种更有效的方法(如果可用)将列表拆分为两个子列表。 原始列表示例:
full_list = ['t1', 't2', 't3', 't4', 't5', 'v1', 'v2']
注意: 通常原始列表包含任意数量的混合在一起的元素。 't1' ... 't5' 仅用于指示第一个子列表的元素:
t_sub_list = ['t1', 't2', 't3', 't4', 't5']
这个子列表是给定的。
我想最有效地生成第二个子列表:
v_sub_list = ['v1', 'v2']
我想到的解决方案是:
v_sub_list_A = [list_element for list_element in full_list if list_element not in t_sub_list]
v_sub_list_B = list(set(full_list) - set(t_sub_list))
我的问题是 - 有没有更有效的方法来做到这一点? 或者至少是任何可以以代码可读性更强的方式实现结果的包?
【问题讨论】:
-
t_sub_list总是在full_list的开头?或者可能在中间? -
t_sub_list 是 full_list 的随机子集
-
好的,但是元素是独一无二的?
-
是的。在我的案例中,元素来自目录列表。因此,作为文件名,它们是唯一的。
-
t_sub_list中的元素是否是来自 full_list 的连续元素块?还是只是随机数?