Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python列表重新排列_Python_Python 3.x - Fatal编程技术网

Python列表重新排列

Python列表重新排列,python,python-3.x,Python,Python 3.x,我目前正在尝试将一段代码从Python2移植到Python3,该代码中的一个函数返回一个表示表的元组列表,但由于这些值是从多个tkinter列表框中获取的,因此分两步执行: 依次从每个列表框中获取完整的列 将列表从每列一个元组反转为每行一个元组 在Python2中,执行此操作的行是: apply(map, [None] + result) 我还不知道这是如何工作的,也不知道如何将它移植到,我已经浏览了文档,以及我所看到的关于如何将其移植到Python3以应用或映射的所有内容实际上并没有实现我想

我目前正在尝试将一段代码从
Python2
移植到
Python3
,该代码中的一个函数返回一个表示表的元组列表,但由于这些值是从多个
tkinter
列表框中获取的,因此分两步执行:

  • 依次从每个列表框中获取完整的列
  • 将列表从每列一个元组反转为每行一个元组
  • Python2
    中,执行此操作的行是:

    apply(map, [None] + result)
    
    我还不知道这是如何工作的,也不知道如何将它移植到,我已经浏览了文档,以及我所看到的关于如何将其移植到
    Python3
    以应用或映射的所有内容实际上并没有实现我想要的

    我使用的是
    python3.3
    ,由于列的数量不是固定的,因此最好使用灵活的答案

    例如:

    [("c1r1","c1r2","c1r3"),("c2r1","c2r2","c2r3"),("c3r1","c3r2","c3r3")]
    
    需要转到:

    [("c1r1","c2r1","c3r1"),("c1r2","c2r2","c3r2"),("c1r3","c2r3","c3r3")]
    
    使用第一个参数
    None
    调用
    map
    ,然后将3个元组作为剩余参数。相当于:

    >>> map(None, *result)
    [('c1r1', 'c2r1', 'c3r1'), ('c1r2', 'c2r2', 'c3r2'), ('c1r3', 'c2r3', 'c3r3')]
    
    但是,对于此操作,您应该使用交叉兼容的
    zip(*result)

    >>> zip(*result)
    [('c1r1', 'c2r1', 'c3r1'), ('c1r2', 'c2r2', 'c3r2'), ('c1r3', 'c2r3', 'c3r3')]
    
    在Python3上,如果需要列表,可能需要使用
    list(zip(*result))

    使用第一个参数
    None
    调用
    map
    ,然后将3个元组作为剩余参数。相当于:

    >>> map(None, *result)
    [('c1r1', 'c2r1', 'c3r1'), ('c1r2', 'c2r2', 'c3r2'), ('c1r3', 'c2r3', 'c3r3')]
    
    但是,对于此操作,您应该使用交叉兼容的
    zip(*result)

    >>> zip(*result)
    [('c1r1', 'c2r1', 'c3r1'), ('c1r2', 'c2r2', 'c3r2'), ('c1r3', 'c2r3', 'c3r3')]
    

    在Python3上,如果需要列表,您可能需要使用
    list(zip(*result))

    a在这里非常有用。你有没有试过什么,或者你只是想让别人帮你写代码?已经被弃用,也不要在Python 2中使用它。我真的不想使用它,我已经在代码中的其他地方删除了它,但是我不知道如何在这行中删除它。我认为您的代码片段是无效的——它将产生一个TypeError
    应用(map,sequence)
    相当于
    map(sequence)
    ,但map也需要一个函数。例如,
    map(函数、序列)
    。您正在寻找Python 3中的
    zip(*yourlist)
    list(zip(*yourlist))
    。你有没有试过什么,或者你只是想让别人帮你写代码?已经被弃用,也不要在Python 2中使用它。我真的不想使用它,我已经在代码中的其他地方删除了它,但是我不知道如何在这行中删除它。我认为您的代码片段是无效的——它将产生一个TypeError
    apply(map,sequence)
    相当于
    map(sequence)
    ,但map还需要一个函数。例如,Python3中的
    map(function,sequence)
    。您正在查找
    zip(*yourlist)
    list(zip(*yourlist))
    。可能会添加一条注释,说明Python2中的
    map
    如何将
    None
    作为标识函数,因此
    map(None,*list)
    实际上相当于Python2中的
    zip(*list)
    ,但是Python 3中的
    map
    似乎不再接受
    None
    作为函数参数。可以添加一个注释,说明Python 2中的
    map
    如何将
    None
    作为标识函数,因此
    map(None,*list)
    实际上相当于Python 2中的
    zip(*list)
    ,但是Python 3中的
    map
    似乎不再接受
    None
    作为函数参数。