Python 如何从两个数字之间的列表中删除一个数字?

Python 如何从两个数字之间的列表中删除一个数字?,python,python-3.x,Python,Python 3.x,我试图从一个从0到9999的列表中选取一个随机数。当我得到那个数字时,我想把它和一个4位数的数字进行比较。然后,如果它不起作用,我想从0到9999的列表中删除这个随机数 e、 g.它随机选择9999,并与3129进行比较,因此它将其从列表中删除,然后再次尝试列表(范围(0000,9998)) lis=列表(范围(000099999)) 随机输入 num=随机选择(lis) 当int(num)pin时: 打印(个) num=随机选择(lis) 计数=计数+1 lis=lis.删除(num) 打印(

我试图从一个从0到9999的列表中选取一个随机数。当我得到那个数字时,我想把它和一个4位数的数字进行比较。然后,如果它不起作用,我想从0到9999的列表中删除这个随机数 e、 g.它随机选择9999,并与3129进行比较,因此它将其从列表中删除,然后再次尝试列表(范围(0000,9998))

lis=列表(范围(000099999))
随机输入
num=随机选择(lis)
当int(num)pin时:
打印(个)
num=随机选择(lis)
计数=计数+1
lis=lis.删除(num)
打印('将您的pin输入'+str(计数))
从时间上导入睡眠
睡眠(4)
将您的列表设置为“无”,因为remove方法不返回任何内容。所以就用

 lis.remove(num) 

可能会解决你的问题-不管你的问题是什么。你的帖子并没有包含一个明确的问题。

我还想指出,你的代码没有考虑
0000
0999
的组合

import random
comp_number = 3129
def get_give_number_from_random_list(comp_number):
    numbers_list = list(range(9999))
    default = True
    while default:
        random_number = random.choice(numbers_list)
        if comp_number == random_number:
            print('Found the {} Number at index {}'.format(comp_number,numbers_list.index(random_number)))
            default = False
        else:
            numbers_list.remove(random_number)       
get_give_number_from_random_list(comp_number)
>>>Found the 3129 Number at index 2197
这是因为python将从
0
9999

您还包括单数、双数和三数,例如
7
99
167

您可以更好地准备列表,并使用
strings
而不是
int
进行搜索

pin = '0001' # Search using a string
lis = ['{0:04}'.format(num) for num in range(0, 10000)] #use string foramtting to add the 0's
lis = [x for x in lis if len(str(x)) == 4] # take out any numbers that are less than 4 digits long
print(lis[0:10]) #check the first 10 items in the list

lis=lis.remove(num)
是@Jean Françoisfare的一个不可能的大复制品我不明白你提供的问题是什么?我的问题可以解决吗?
lis=lis.remove(num)
=>
lis.remove(num)
那会更好。你是说把
num=random.choice(lis)
放在循环中吗?这很不清楚。
import random
comp_number = 3129
def get_give_number_from_random_list(comp_number):
    numbers_list = list(range(9999))
    default = True
    while default:
        random_number = random.choice(numbers_list)
        if comp_number == random_number:
            print('Found the {} Number at index {}'.format(comp_number,numbers_list.index(random_number)))
            default = False
        else:
            numbers_list.remove(random_number)       
get_give_number_from_random_list(comp_number)
>>>Found the 3129 Number at index 2197
pin = '0001' # Search using a string
lis = ['{0:04}'.format(num) for num in range(0, 10000)] #use string foramtting to add the 0's
lis = [x for x in lis if len(str(x)) == 4] # take out any numbers that are less than 4 digits long
print(lis[0:10]) #check the first 10 items in the list