显示特定范围内的数字?

2024-03-29 13:02:15 发布

您现在位置:Python中文网/ 问答频道 /正文

举个例子:

      l = [11, 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 30, 40]

现在我需要显示从b/w 12到16的数字,所以输出必须是

        [12, 13, 14, 14, 15, 16]

我确实编写了一个示例代码,但它显示了整个输入:

       l = [11,12,13,14,14,15,16,12,17,18,19,19,20,30,40]
       for i in range(len(l)):
            if ( l[i]==12):
                 print l

输出为:

        [11,12,13,14,14,15,16,12,17,18,19,19,20,30,40]

如果有人能建议用python编写一个代码来实现这一点,那将会很有帮助。。。。。。。。。你知道吗


Tags: 代码in示例forlenifrange数字
3条回答
l = [11,12,13,14,14,15,16,12,17,18,19,19,20,30,40]
for i in range(len(l)):
    if ( l[i]==12):
        print l

这段代码说,“当您在列表中找到一个等于12的项时,打印整个列表。”这就是为什么要打印整个列表:这是您告诉Python要做的。您可能希望打印l[i]而不是l,因为这是您正在查看的数字。你知道吗

现在可以调整if语句,只选择12到16之间的数字:

if 12 <= l[i] <= 16:

现在你有了数字,你可以开始格式化了。获取所需输出的最简单方法是建立一个列表并在末尾打印:

l = [11,12,13,14,14,15,16,12,17,18,19,19,20,30,40]
o = []
for i in range(len(l)):
    if 12 <= l[i] <= 16:
        o.append(l[i])
print o

在那之后你还可以做其他的改进。例如,您可以直接迭代列表中的数字,而不是列表索引,否则不需要这些索引:

for n in l:
    if 12 <= n <= 16:
        o.append(n)
print o

现在您可以将其编写为列表理解,这是一种Python语言功能,旨在使构建列表的常见模式变得更简单:

print [n for n in l if 12 <= n <= 16]
print [x for x in l if 12 <= x <= 16]
l = [11, 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 30, 40]

print [ f for f in l if f in xrange(12, 17) ]

如果您担心in xrange(12, 17)会导致额外的内存使用,请参阅this question的公认答案

输出:

[12, 13, 14, 14, 15, 16]

相关问题 更多 >