首页 > 解决方案 > 如何在运行时间之间从列表中打印数字在python中输入两个数字

问题描述

如何在运行时间之间从列表中打印数字在 python 中输入了两个数字。

例如:

lst = [23, 5, 7, 8, 90, 67, 90, 0]

first = int(input('Enter Your Number:'))

second = int(input('Enter Your Number:'))


first = 7

second = 67

答案是 [8, 23]

lst = [23, 5, 7, 8, 90, 67, 90, 0]
first = int(input('Enter Your Number:'))
second = int(input('Enter Your Number:'))

for i in range(0, len(lst)):
    if lst[i] == first:
        for x in range(0, len(lst)):
            if lst[x] == second:
                if x > i:
                    ans = lst[lst[i]:lst[x]]
                    print(ans)
                else:
                    ans2 = lst[lst[x]:lst[i]]
                    print(ans2)

标签: python

解决方案


这只是一个过滤器:

print(list(filter(lambda x: first < x < second, lst)))

或者

print([x for x in lst if first < x < second])

如果要对输出进行排序,可以sorted在原始列表或过滤列表上使用:

[x for x in sorted(lst) if first < x < second]
sorted(x for x in lst if first < x < second)
list(filter(lambda x: first < x < second, sorted(lst)))
sorted(filter(lambda x: first < x < second, sorted(lst)))

由于实际的过滤操作是 O(n),而排序是 O(n lg n),我建议对可能更短的结果进行排序,而不是对原始列表进行排序。


推荐阅读