gpt4 book ai didi

python - 检查列表中整数之间的数字

转载 作者:行者123 更新时间:2023-12-01 00:43:18 26 4
gpt4 key购买 nike

我有一个列表,其中有 50 个随机数,范围从 1 到 1000,按从小到大排序。我想找到这些数字之间的任何数字但不包括它们。问题是,当数字直接相邻时(100、101、102),即使不应该打印,它们仍然会被打印。 (代码是用Python 3.2.3编写的)

我尝试获取列表的第一个整数,并将其与第二个整数进行比较,并在第一个整数上添加+1,直到它最终变得与第二个整数一样大。然后我会比较第二个和第三个等等。

list = [98, 100, 101, 102, 103, 110, ... ]
position_counter_1 = 0
position_counter_2 = 1
position_1 = 0
position_2 = 1

while position_counter_2 < len(list):

if list[position_1] + 1 != list[position_2] :

while list[position_counter_1] <= list[position_counter_2] - 1 :
list[position_counter_1] = list[position_counter_1] + 1
print(list[position_counter_1])

if list[position_counter_1] >= list[position_counter_2] - 1 :
position_counter_1 = position_counter_1 + 1
position_counter_2 = position_counter_2 + 1

输出为99 101 102 103 104 105 106 107 108 109,应该是99 104 105 106 107 108 109

我还收到以下错误消息,这还不错,因为它仅在循环完成时出现,但在这里:

while list[position_counter_1] <= list[position_counter_2] - 1 :
IndexError: list index out of range

最佳答案

这是Python,不要让事情复杂化。 :)

mylist = [98, 100, 101, 102, 103, 110]
[num for num in range(mylist[0]+1, mylist[-1]) if num not in mylist]

Python 3 range 创建第一个参数(并包括它)和第二个参数(不包括它)之间的所有整数的迭代器。所以这个list comprehension上面的任务创建一个包含所有数字的新列表(mylist[0] 返回第一个,mylist[-1] 返回最后一个整数),但不包括那些已经出现在列表中的内容(如果 num 不在 mylist 条件中。)

关于python - 检查列表中整数之间的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57183369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com