在Python中重塑不规则列表

发布于 2024-12-11 20:10:04 字数 227 浏览 0 评论 0原文

我想

wide_list = [[1,['a','b','c']],[2,['d','e']],[3,'f']]

以“长格式”重塑以下列表:

long_list = [[1,'a'],[1,'b'],[1,'c'],[2,'d'],[2,'e'],[3,'f']]

如何在Python中有效地实现这一点?

I would like to reshape the following list :

wide_list = [[1,['a','b','c']],[2,['d','e']],[3,'f']]

in a "long format":

long_list = [[1,'a'],[1,'b'],[1,'c'],[2,'d'],[2,'e'],[3,'f']]

How can this be achieved efficiently in Python?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你在看孤独的风景 2024-12-18 20:10:04

尝试嵌套列表理解:

>>> wide_list = [[1,['a','b','c']],[2,['d','e']],[3, ['f']]]
>>> long_list = [[k, v] for k, sublist in wide_list for v in sublist]
>>> long_list
[[1, 'a'], [1, 'b'], [1, 'c'], [2, 'd'], [2, 'e'], [3, 'f']]

请注意,必须更改最后一组以匹配前两组的模式。使用 [3, ['f']] 代替 [3, 'f']。否则,您将需要针对不遵循该模式的组的特殊情况逻辑。

Try a nested list comprehension:

>>> wide_list = [[1,['a','b','c']],[2,['d','e']],[3, ['f']]]
>>> long_list = [[k, v] for k, sublist in wide_list for v in sublist]
>>> long_list
[[1, 'a'], [1, 'b'], [1, 'c'], [2, 'd'], [2, 'e'], [3, 'f']]

Note, the last group had to be changed to match the pattern of the first two groups. Instead of [3, 'f'], use [3, ['f']] instead. Otherwise, you'll need special case logic for groups that don't follow the pattern.

诗笺 2024-12-18 20:10:04

实现此目的的一种方法是使用列表理解:

>>> [[x[0],letter] for x in wide_list for letter in x[1]]
[[1, 'a'], [1, 'b'], [1, 'c'], [2, 'd'], [2, 'e'], [3, 'f']]

One way this can be done is using a list comprehension:

>>> [[x[0],letter] for x in wide_list for letter in x[1]]
[[1, 'a'], [1, 'b'], [1, 'c'], [2, 'd'], [2, 'e'], [3, 'f']]
若沐 2024-12-18 20:10:04

使用 列表推导式

long_list = [[x[0],item] for x in wide_list for item in x[1]]

但是 这个答案可能是最清楚的。

Using list comprehensions,

long_list = [[x[0],item] for x in wide_list for item in x[1]]

However, this answer is probably the most clear.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文