如何将嵌套清单切成两次?

发布于 2025-01-24 07:31:39 字数 271 浏览 0 评论 0原文

有了一个嵌套列表,例如:

ex_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

我需要能够将此列表切成薄片:

[[1, 2], [4, 5]]

我一直在尝试:

list(ex_list[:2][:2])

但这不起作用。我显然做错了什么,但是由于某种原因使用逗号都无法使用解决方案,因此无法找到解决方案。

With a nested list like:

ex_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

I need to be able to slice this list for:

[[1, 2], [4, 5]]

I've been trying:

list(ex_list[:2][:2])

but this isn't working. I'm obviously doing something very wrong but haven't been able to find a solution as using commas doesn't work either for some reason.

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

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

发布评论

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

评论(4

黑色毁心梦 2025-01-31 07:31:39

您需要将元素分别切成外部列表;最好先进行外部列表以避免不必要的内部切片。

[inner[:2] for inner in ex_list[:2]]

You need to slice the elements separately to the outer list; it's better to do the outer list first to avoid unnecessary inner slices.

[inner[:2] for inner in ex_list[:2]]
幼儿园老大 2025-01-31 07:31:39

您应该尝试使用理解:
尝试:

[i[:2] for i in ex_list[:2]]

代码:

ex_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print([i[:2] for i in ex_list[:2]])

输出:

[[1, 2], [4, 5]]

You should try using comprehension:
Try:

[i[:2] for i in ex_list[:2]]

Code:

ex_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print([i[:2] for i in ex_list[:2]])

Output:

[[1, 2], [4, 5]]
一片旧的回忆 2025-01-31 07:31:39

是否使用numpy一个选项?

import numpy as np

ex_list = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(ex_list[:2,:2].tolist()) # [[1, 2], [4, 5]]

第一个:2切片外列表,第二个切片内列表中的每个列表。

Is using numpy an option?

import numpy as np

ex_list = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(ex_list[:2,:2].tolist()) # [[1, 2], [4, 5]]

The first :2 slice the outer list, the second slice each one of the inner lists.

柠檬色的秋千 2025-01-31 07:31:39

您可以尝试地图

l = list(map(lambda lst: lst[:2], ex_list))
print(l)

[[1, 2], [4, 5], [7, 8]]

或使用itemgetter

from operator import itemgetter

l = list(map(itemgetter(slice(0,2)), ex_list))
print(l)

[[1, 2], [4, 5], [7, 8]]

You can try map

l = list(map(lambda lst: lst[:2], ex_list))
print(l)

[[1, 2], [4, 5], [7, 8]]

Or with itemgetter

from operator import itemgetter

l = list(map(itemgetter(slice(0,2)), ex_list))
print(l)

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