[英]How to go through a python list one by one?
我正在嘗試制作一種算法,可以在一組數字中找出哪個數字亂序。
有沒有辦法遍歷列表並查看列表中的每個項目加 1 是否會使列表中的下一個項目的值。 示例 ( 0 + 1 == 1) 和 ( 1 + 1 = 2) 但是當您到達 (2 + 1 != 4) 時,我將如何使其顯示 3。
number = [0,1,2,4,5]
if number[0] + 1 != number[1]:
IIUC:我建議使用內置的zip
函數和從第二項開始的列表副本來獲取列表中的當前和下一項:
numbers = [0, 1, 2, 4, 5]
for c_number, n_number in zip(numbers, numbers[1:]):
if c_number + 1 != n_number:
print(c_number + 1)
或者甚至更好地使用itertools.pairwise
(僅當您擁有 Python 3.10 或更高版本時,否則您可以查看上面鏈接中大致等效的內容以創建相同的功能):
import itertools
numbers = [0, 1, 2, 4, 5]
for c_number, n_number in itertools.pairwise(numbers):
if c_number + 1 != n_number:
print(c_number + 1)
當你想打印 3 時,我不能說我理解邏輯是什么。但無論如何這里是如何做到的,請相應地使用代碼:
a = [0,1,2,4,5]
for i in range(len(a)-1):
if a[i] + 1 != a[i+1]:
print(a[i]+1)
以下解決方案需要對列表進行排序。
my_list = [0,1,2,4,5,8,9]
for i in range(my_list[0], my_list[-1]):
if i not in my_list:
print(i)
您可以嘗試使用“for 循環”遍歷每個數字:
numbers = [0,1,2,4,5] #your numbers
for i in range(0, len(numbers)): #go through every number
if numbers[i] + 1 != number[i+1]: #check if number is not in the line
print(str(i)+"is false") #output
您可以將每個數字與其相對位置進行比較(從第一個值開始):
if any(i!=n for i,n in enumerate(a,a[0])):
print("out of order")
else:
print("proper sequence")
您還可以使用 zip 將每個項目與其后繼項目進行比較:
if any(m-n != 1 for n,m in zip(a,a[1:])):
print("out of order")
else:
print("proper sequence")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.