2024-10-02 04:25:13 发布
网友
我需要使用set(myList),但这是不可能的,因为我有一个列表列表。(它给出了一个不可散列的错误)。你知道吗
set(myList)
所以我决定把列表中的每个元素转换成一个元组。列表大致如下:
MyList[elem1, elem2, [nested1, nested2, [veryNested1, veryNested2]]]
如何快速将所有内容转换为元组,然后再转换回列表?你知道吗
使用递归
MyList = ['elem1', 'elem2', ['nested1', 'nested2', ['veryNested1', 'veryNested2']]] print MyList def tupconv(lst): tuplst = [] for x in lst: if isinstance(x, list): tuplst.append(tupconv(x)) else: tuplst.append(x) return tuple(tuplst) def listconv(tup): lst = [] for x in tup: if isinstance(x, tuple): lst.append(listconv(x)) else: lst.append(x) return lst mytup = tupconv(MyList) print mytup mylist = listconv(mytup) print mylist
嗯,我以前见过这种问题。我通过使用递归解决了这个问题(假设最后一个元素是下一个级别,并且我知道递归需要多深才能将其拆分)。你知道吗
话虽如此,我想最好问问你是以那种格式给你这份名单,还是通过某种程序把它做成那样?这可能会帮助我们避免一些不必要的头部打击。你知道吗
这应该做到:
def lol_to_tuple(lol): return tuple(el if type(el) is not list else lol_to_tuple(el) for el in lol)
要返回,只需将tuple替换为list:
def tuples_to_lol(tuples): return list(el if type(el) is not tuple else tuples_to_lol(el) for el in tuples)
使用递归
嗯,我以前见过这种问题。我通过使用递归解决了这个问题(假设最后一个元素是下一个级别,并且我知道递归需要多深才能将其拆分)。你知道吗
话虽如此,我想最好问问你是以那种格式给你这份名单,还是通过某种程序把它做成那样?这可能会帮助我们避免一些不必要的头部打击。你知道吗
这应该做到:
要返回,只需将tuple替换为list:
相关问题 更多 >
编程相关推荐