Python列表理解。替代/更好的方式来编写这段代码?

时间:2015-02-26 17:08:06

标签: python list-comprehension

以下是我正在使用的示例:

    >>> 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文件运行它会怎么样?我想知道是否有一种有效/更好的方法来重写它,可能使用for循环?

2 个答案:

答案 0 :(得分:5)

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

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')]

答案 1 :(得分:1)

您可以执行以下操作:

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