Python 3.x 将列表元素转换为其他列表的列表值

Python 3.x 将列表元素转换为其他列表的列表值,python-3.x,list,set,Python 3.x,List,Set,我试图将给定列表的列表元素转换为另一个列表的列表值。以下是一个例子: list1 = ['apple', 'tomato', 'milk', 'beans', 'mango'] list2 = [{0,4}, {1,3}, 2] result = [] 预期产出: [{'apple', 'banana'}, {'tomato', 'beans'}, 'milk'] 我正在尝试使用以下代码,但它不起作用: for i in list2: result.append(list1[i])

我试图将给定列表的列表元素转换为另一个列表的列表值。以下是一个例子:

list1 = ['apple', 'tomato', 'milk', 'beans', 'mango']
list2 = [{0,4}, {1,3}, 2]
result = []
预期产出:

[{'apple', 'banana'}, {'tomato', 'beans'}, 'milk']
我正在尝试使用以下代码,但它不起作用:

for i in list2:
    result.append(list1[i])

假设
list2
只包含
set
list
int
。这就是我的方法

list1 = ['apple', 'tomato', 'milk', 'beans', 'mango']
list2 = [{0,4}, {1,3}, 2]
result = []

# [{'apple', 'banana'}, {'tomato', 'beans'}, 'milk']

for x in list2:
    temp_lst = []
    if type(x) in [set, list]:
        new_set = set()
        for y in x:
            new_set.add(list1[y])
        temp_lst.append(new_set)
        

    else:
        temp_lst.append(list1[x])
    
    result.extend(temp_lst)

print(result)

您尝试过如何处理集合元素,以及在实现过程中遇到了哪些问题?