Python 如何将值输出到一个列表而不是多个列表中?

Python 如何将值输出到一个列表而不是多个列表中?,python,Python,我很难解决我的问题。我做了这个: def thereyougo(): """ The function thereyougo() should return a list with all the numbers from 1200 upto and including 2399 that are divisible by 12. """ i = range(1200, 2400) z = [] for k in i:

我很难解决我的问题。我做了这个:

def thereyougo():
    """
    The function thereyougo() should return a list with all the numbers from
    1200 upto and including 2399 that are divisible by 12.
    """

    i = range(1200, 2400)
    z = []

    for k in i:
        if k % 12 == 0:
            z.append(k)
            print z

thereyougo()
问题是,我有一大堆清单,但我只想要一个

例如,这是我得到的输出:

[1200]
[1200, 1212]
[1200, 1212, 1224]
[1200, 1212, 1224, 1236]
而我想要
[120012121224…]


我做错了什么?

只是
取消缩进
打印

for k in i:
    if k % 12 == 0:
        z.append(k)
print z

请注意,通过使用
range()
生成器的
step
参数,可以更有效地执行此操作。这将允许您获取每个
12
编号,根据定义,该编号将是每个
多个

使用上述功能,您可以将功能缩减为:

def thereyougo():
    print list(range(1200, 2400, 12))
调用时,将提供:

[1200, 1212, 1224, 1236, 1248, 1260, 1272, 1284, 1296, 1308, 1320, 1332, 1344, 1356, 1368, 1380, 1392, 1404, 1416, 1428, 1440, 1452, 1464, 1476, 1488, 1500, 1512, 1524, 1536, 1548, 1560, 1572, 1584, 1596, 1608, 1620, 1632, 1644, 1656, 1668, 1680, 1692, 1704, 1716, 1728, 1740, 1752, 1764, 1776, 1788, 1800, 1812, 1824, 1836, 1848, 1860, 1872, 1884, 1896, 1908, 1920, 1932, 1944, 1956, 1968, 1980, 1992, 2004, 2016, 2028, 2040, 2052, 2064, 2076, 2088, 2100, 2112, 2124, 2136, 2148, 2160, 2172, 2184, 2196, 2208, 2220, 2232, 2244, 2256, 2268, 2280, 2292, 2304, 2316, 2328, 2340, 2352, 2364, 2376, 2388]

只需
取消缩进
打印

for k in i:
    if k % 12 == 0:
        z.append(k)
print z

请注意,通过使用
range()
生成器的
step
参数,可以更有效地执行此操作。这将允许您获取每个
12
编号,根据定义,该编号将是每个
多个

使用上述功能,您可以将功能缩减为:

def thereyougo():
    print list(range(1200, 2400, 12))
调用时,将提供:

[1200, 1212, 1224, 1236, 1248, 1260, 1272, 1284, 1296, 1308, 1320, 1332, 1344, 1356, 1368, 1380, 1392, 1404, 1416, 1428, 1440, 1452, 1464, 1476, 1488, 1500, 1512, 1524, 1536, 1548, 1560, 1572, 1584, 1596, 1608, 1620, 1632, 1644, 1656, 1668, 1680, 1692, 1704, 1716, 1728, 1740, 1752, 1764, 1776, 1788, 1800, 1812, 1824, 1836, 1848, 1860, 1872, 1884, 1896, 1908, 1920, 1932, 1944, 1956, 1968, 1980, 1992, 2004, 2016, 2028, 2040, 2052, 2064, 2076, 2088, 2100, 2112, 2124, 2136, 2148, 2160, 2172, 2184, 2196, 2208, 2220, 2232, 2244, 2256, 2268, 2280, 2292, 2304, 2316, 2328, 2340, 2352, 2364, 2376, 2388]

您正在if范围内打印z,请将其移出if范围。您正在打印列表,而不是返回列表。要返回它们,您可以使用
return
关键字在if范围内打印z,将其移出if范围。如果您正在打印列表,则不返回它们。要返回它们,您可以使用
return
关键字谢谢,乔!你能解释一下我为什么要缩进印刷品吗?我没听清楚。我的意思是,如果它不在for循环中,它怎么知道它可以把串传递给z呢?@Siyah所以
for循环中的任何东西(就像在缩进级别上一样)都会在每次它
循环时运行,所以在这种情况下,对于
12
的每个
多个
。因此,如果您在那里
打印z
,那么它将在每个循环上打印很多次。但是,在
for循环
完成后,
z
列表
仍然存在,因此在添加完所有内容后,您可以将其打印出来。请记住接受
谢谢!:)谢谢你,乔!谢谢你,乔!你能解释一下我为什么要缩进印刷品吗?我没听清楚。我的意思是,如果它不在for循环中,它怎么知道它可以把串传递给z呢?@Siyah所以
for循环中的任何东西(就像在缩进级别上一样)都会在每次它
循环时运行,所以在这种情况下,对于
12
的每个
多个
。因此,如果您在那里
打印z
,那么它将在每个循环上打印很多次。但是,在
for循环
完成后,
z
列表
仍然存在,因此在添加完所有内容后,您可以将其打印出来。请记住接受
谢谢!:)谢谢你,乔!谢谢。