Python 列表理解。 Alternative/Better这段代码怎么写?

Python list comprehension. Alternative/Better way to write this code?

这是我正在使用的示例:

    >>> a = [('The','det'),('beautiful','adj')]
    >>> d = [y for (x,y) in a]
    >>> z = [x.lower() for (x,y) in a]
    >>> final=[]
    >>> final = zip(d,z)
    >>> final
    >>> [('det', 'the'), ('adj', 'beautiful')]

当直接从控制台工作时,这是一种很好的工作方式。如果我必须从 .py 文件中 运行 怎么办?我想知道是否有 efficient/better 重写这个的方法,也许使用 for 循环?

您只需一步即可生成最终输出:

final = [(y, x.lower()) for x, y in a]

或者使用更好的变量名来使放在哪里更清楚:

final = [(tag, word.lower()) for word, tag in a]

演示:

>>> a = [('The','det'),('beautiful','adj')]
>>> [(y, x.lower()) for x, y in a]
[('det', 'the'), ('adj', 'beautiful')]

您可以执行以下操作:

[(i[1], i[0].lower()) for i in a]