2024-05-19 23:02:45 发布
网友
我有一个包含列索引的列表,如下所示:
list1 = [0 ,2]
另一个列表将包含csv文件的文件内容,如下所示:
list2=[["abc", 1, "def"], ["ghi", 2, "wxy"]]
创建一个新列表的最佳方法是什么?该列表只包含来自list2的值,列号包含在list1中,即
list2
list1
newList = [["abc", "def"], ["ghi", "wxy"]]
我很难创建子列表
您可以使用List Comprehension:-
List Comprehension
newList = [[each_list[i] for i in list1] for each_list in list2]
如果您对元组列表感到满意,可以使用operator.itemgetter
operator.itemgetter
import operator list1 = [0,2] my_items = operator.itemgetter(*list1) new_list = [ my_items(x) for x in list2 ]
(或者您可以在此处使用map):
map
new_list = map(my_items, list2)
作为1号班轮:
new_list = map(operator.itemgetter(*list1), list2)
operator.itemgetter可能比嵌套列表理解有一点性能优势,但它可能足够小,不值得担心
>>> list1 = [0 ,2] >>> list2=[["abc", 1, "def"], ["ghi", 2, "wxy"]] >>> newList = [[l[i] for i in list1] for l in list2] >>> print newList [['abc', 'def'], ['ghi', 'wxy']]
您可以使用
List Comprehension
:-如果您对元组列表感到满意,可以使用
operator.itemgetter
(或者您可以在此处使用
map
):作为1号班轮:
operator.itemgetter
可能比嵌套列表理解有一点性能优势,但它可能足够小,不值得担心相关问题 更多 >
编程相关推荐