如何使用列表解析来解决此功能?

时间:2016-12-12 21:12:51

标签: python list list-comprehension

    yearlist = []
    unluckydates = []
    for year in range(end):
        unluckydates = unlucky(year)
        if len(unluckydates) == 3:
            yearlist.append(year)
    return yearlist

以下是每个变量的用途:

unlucky(year)是一个接受年份并在列表中返回不幸日期(星期五13日)的函数。

unluckydates用于存储unlucky(year)

中的列表

yearlist用于存储有3个不幸日期(13日星期五)的年份

该函数返回0到2016年有3个不幸日期的所有年份的列表。我这样写,现在,我想知道如何使用列表理解来编写它。

以下是我提出的问题:

yearlist.append([(unlucky(year), unluckydates == unlucky(year)) for year in range(0, end) if len(unluckydates) == 3])

1 个答案:

答案 0 :(得分:1)

这是一种方法:

def mostUnlucky1(end):
    return [year for year in range(end) if len(unlucky(year)) == 3]

请注意,由于for循环的目标变量名为year(意味着它在每次迭代时都获得一个新值),for循环末尾的year += 1是多余的。

您可以删除range的零起始索引。