python - 使用理解反向采样嵌套列表

标签 python list list-comprehension

抱歉,如果这是重复的。如果我有一个列表列表:

j0 = [i for i in range(4)]
j1 = [j0 for j in range(4)]
>>> [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]

我可以使用列表理解依次从每个列表中获取一个元素:

print [j1[k][k] for k in range(0,4)]
>>> [0, 1, 2, 3]

但是我想要每个列表中的一个元素从末尾开始(因此向后工作),所以所需的输出是:

>>> [3, 2, 1, 0]  # One item from each list

我试过了,但显然是错误的,因为 j1[0][0] = 0:

print [j1[k][-k] for k in range(0,4)]
>>>[0, 3, 2, 1]

我可以使用以下内容,但是使用列表理解是否有更好的方法?

nl = []
l = 0
for i in range(-1, -5, -1):
    nl.append(j1[l][i])
    l += 1
print nl

最佳答案

这与您尝试过的非常相似。您对 -k 有正确的想法,但必须从长度中减去它(连同另一个 -1,因为 python 索引从 0 开始).

print [j1[k][len(j0) - 1 - k] for k in range(0,4)]
[3, 2, 1, 0]

关于python - 使用理解反向采样嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31147908/

相关文章:

python - python 模块变量如何工作?

python - WSGI- python : How to determine the ** OPENED ** file's image type?

c++ - 将模板添加到类中,该类在多集中使用

python - 在 exec 中用空局部变量列表理解 : NameError

python - 异常。类型错误 : 'str' object is not callable

css - 当框的高度受到限制时,在新行上继续列出

list - 无法理解 Haskell 树

Python 2.7 语法极客 - 列表推导式中的 Lambda

python - 多处理 RDD 列表

python - 使用 SQLAlchemy 在日期字段中按天过滤