社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何在Python3.10中对二维对象列表进行分组?

ChapelCone56 • 4 年前 • 1661 次点击  

我有一份礼物清单。每个“gif”都是这样设置的帧对象列表。

gifs = [ [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], ...]

我需要将它们排序为一个列表,其中每个子列表包含第n个对应的帧。即

orderedGifs = [ [1, 1, 1, ...], [2, 2, 2, ...], [3, 3, 3, ...], ...]

我该如何实现这一目标?

谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127909
文章 [ 1 ]  |  最新文章 4 年前
Grismar
Reply   •   1 楼
Grismar    4 年前

正如@enke在评论中指出的,使用 list(zip(*gifs)) 获取转置,但它将是一个元组列表。

如果您需要将这些组设置为列表,可以这样做:

orderedGifs = list(map(list, zip(*gifs)))

它之所以有效,是因为:

  • *gifs 打开原件 gifs 并将所有内容传递给 zip() (传播)
  • zip() 将传递的每个iterable的元组中的元素配对,在本例中是每个列表的第一个元素,然后是第二个元素,以此类推。
  • map(list, xs) 从 xs 适用于 list() 返回一个可计算的结果

所以把整件事都包起来 列表() 根据需要,将转换为列表的元组放入列表中。