Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Numpy - Fatal编程技术网

在python中反转列表列表中的元素

在python中反转列表列表中的元素,python,list,numpy,Python,List,Numpy,我有一个包含前2个标签的numpy数组: n = [['20011' '20048'] ['20011' '20048'] ['20011' '20048'] ['20011' '20048']] 我想按相反的顺序得到它们: [['20048' '20011'] ['20048' '20011'] ['20048' '20011']] 如何在保持格式不变的情况下执行此操作 迄今为止的代码: n = model1.classes_[order[:,-5:]]

我有一个包含前2个标签的numpy数组:

n =  [['20011' '20048']
     ['20011' '20048']
     ['20011' '20048']
     ['20011' '20048']]
我想按相反的顺序得到它们:

[['20048' '20011']
 ['20048' '20011']
 ['20048' '20011']]
如何在保持格式不变的情况下执行此操作

迄今为止的代码:

n = model1.classes_[order[:,-5:]]
print(n)
r = [p[::-1] for p in n]
print(r)
输出:

[array(['20048', '20011'], 
      dtype='|S5'), array(['20048', '20011'], 
      dtype='|S5'), array(['20048', '20011'], 
      dtype='|S5'), array(['20048', '20011'], 
      dtype='|S5')]
需要尝试摆脱
d类型
,只保留反向数组

l = [['a', 'b', 'c'], ['d', 'e', 'f']]
然后是这样一个简单的列表

[li[::-1] for li in l]
为您提供所需的输出:

[['c', 'b', 'a'], ['f', 'e', 'd']]
编辑:

当你改变你的问题时:

假设您现在有一个数组:

import numpy as np
l2 = np.array([np.array(['a', 'b', 'c']), np.array(['d', 'e', 'f'])])
然后,您可以执行以下操作来删除
数据类型

map(list, l2[:, ::-1])
这给了你:

[['c', 'b', 'a'], ['f', 'e', 'd']]

但从您的问题中,仍然很难判断您想要的确切输出格式

您的列表似乎缺少逗号,因此实际上每个列表都有一个字符串,但您可以使用
列表替换它。如果要修改原始子列表,请反向执行

for sub in lists:
     sub.reverse()
实际上,您有一个numpy数组,因此假定它的格式正确,您可以:

In [50]: arr
Out[50]: 
array([['20015', '20013', '20044', '20001', '20002'],
       ['20002', '20015', '20001', '20013', '20070']], 
      dtype='|S5')

In [51]: arr[:,::-1]
Out[51]: 
array([['20002', '20001', '20044', '20013', '20015'],
       ['20070', '20013', '20001', '20015', '20002']], 
      dtype='|S5')
要保存到文件,请执行以下操作:

In [57]: arr[:,::-1].tofile("out.txt",sep=",")

In [58]: cat out.txt
20002,20001,20044,20013,20015,20070,20013,20001,20015,20002
如果希望每行一行savetxt:

In [94]: np.savetxt("out.txt",arr[:,::-1],fmt="%s")

In [95]: cat out.txt
20002 20001 20044 20013 20015
20070 20013 20001 20015 20002
另一种列表理解方法 作为列表理解的忠实粉丝,我采用了与Cleb类似的方法,但是使用了list类的反向方法,而不是使用
list\u name[::-1]
方法

l1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]
[l1[i].reverse() for i in range(len(l1))]
产量

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

关键是不要将理解设置为任何内容。

因此,这不是一个代码编写服务,如果你想得到一个正确的答案,你需要用你迄今为止尝试过的代码更新你的问题,并添加一个。
[L[::-1]表示列表中的L]
@minks,添加打印输出的实际输出array@PadraicCunningham:addedI已经编辑了我的答案,如果您希望最终结果以文件形式结束,您可以执行我在编辑中的操作,您也可以在一行中执行:
[sub.reverse()用于列表中的sub]
@zondo,是的,但您将使用副作用列表comp并创建一个无副作用列表's@zondo这不管用,我得到了[没有,没有,没有,没有]肯定;这就是为什么它只是一个评论。@RichardRublev:不要给它分配任何东西。我的评论将自行执行。我试着用一个较小的列表来做这件事:['20011''20048']['20011''20048']['20011''20048']['20011''20048']],收到的结果是:数组(['20048','20011'],dtype='S5'),数组(['20048','20011'],dtype='S5'),数组(['20048','20011'],dtype='S5'),数组(['20048','20011']),dtype='S5'),数组(['20048','20011'],dtype='|S5')]为什么要显示数据类型?@minks,您使用的是numpy数组而不是python列表您确定使用列表而不是numpy数组吗!?哦,对了!有没有一种方法可以让我执行相同的程序,但不使用数据类型。通过逆转20048年和2008年,它似乎部分发挥了作用20011@cleb例如它工作得很好。谢谢我已经接受了答案