我有一个元组元组-例如:
tupleOfTuples = ((1, 2), (3, 4), (5,))
我想按顺序将其转换为所有元素的平面一维列表:
[1, 2, 3, 4, 5]
我一直在尝试通过列表理解来实现。但我似乎无法弄清楚。我能够通过for-each循环来完成它:
myList = []
for tuple in tupleOfTuples:
myList = myList + list(tuple)
但是我觉得必须有一种方法来理解列表。
一个简单的[list(tuple) for tuple in tupleOfTuples]
只是给您一个列表列表,而不是单个元素。我以为可以通过使用拆包运算符然后将列表拆包来建立此基础,如下所示:
[*list(tuple) for tuple in tupleOfTuples]
要么
[*(list(tuple)) for tuple in tupleOfTuples]
…但是那没用。有任何想法吗?还是我应该坚持下去?
它通常被称为展平嵌套结构。
>>> tupleOfTuples = ((1, 2), (3, 4), (5,))
>>> [element for tupl in tupleOfTuples for element in tupl]
[1, 2, 3, 4, 5]
只是为了展示效率:
>>> import timeit
>>> it = lambda: list(chain(*tupleOfTuples))
>>> timeit.timeit(it)
2.1475738355700913
>>> lc = lambda: [element for tupl in tupleOfTuples for element in tupl]
>>> timeit.timeit(lc)
1.5745135182887857
ETA :请不要将其tuple
用作变量名,因为它是内置的。
我正在尝试将列表的元组转换为列表,但是我没有成功,所以我有了这个函数 获取输入,例如: ( [1,2,3,4], [7,8,9] ) 并应返回: [1,7,2,8,3,9,4] 我有 结果是: [1,7,2,8,3,9***异常:hw2.hs:29: 1-54:函数函数中的非穷尽模式 我知道我得到这个错误,因为列表是不一样的大小,你们怎么认为我可以解决这个问题
问题内容: 我是Python的新手,需要将列表转换为字典。我知道我们可以将元组列表转换为字典。 这是输入列表: 并且我想将此列表转换为元组列表(或直接转换为字典),如下所示: 我们如何在Python中轻松做到这一点? 问题答案: 您想一次将三个项目分组吗? 您想一次分组N个项目吗?
问题内容: 假设我有一个元组列表,并且我想转换为多个列表。 例如,元组列表是 Python中是否有任何内置函数可以将其转换为: 这可以是一个简单的程序。但是我只是对Python中存在这种内置函数感到好奇。 问题答案: 内置功能几乎可以满足您的需求: 唯一的区别是您得到元组而不是列表。您可以使用将它们转换为列表
问题内容: 我如何转换 至 问题答案: 使用简单的列表理解: 会给你:
问题内容: 我已经编写了此函数,用于将元组列表转换为列表列表。有没有更优雅的/ Pythonic的方式来做到这一点? 问题答案: 您可以使用列表推导:
问题内容: 例如,如果我有一个元组列表 如何解开元组并将其重新格式化为一个列表 我认为这也与功能有关,但是我真的不知道该怎么做。请赐教。 问题答案: b = [i for sub in a for i in sub] 这样就可以了。