Ang pangunahing problema na nauugnay sa pagkakaiba sa magkasunod na numero ng Python ay ang pagkakaiba sa pagitan ng dalawang magkasunod na numero ay hindi palaging pareho. Halimbawa, kung mayroon kang listahan ng mga numero [1, 2, 3], ang pagkakaiba sa pagitan ng 1 at 2 ay 1, ngunit ang pagkakaiba sa pagitan ng 2 at 3 ay 0.5 lamang. Maaari itong maging sanhi ng pagkalito kapag sinusubukang kalkulahin ang mga pagkakaiba sa mga halaga o kapag gumagamit ng mga algorithm na umaasa sa isang pare-parehong laki ng hakbang.
def consecutive_difference(nums): diff = [] for i in range(len(nums)-1): diff.append(abs(nums[i] - nums[i+1])) return diff # Driver code nums = [2, 4, 6, 8] print(consecutive_difference(nums))
# Linya 1: Tinutukoy ng linyang ito ang isang function na tinatawag na consecutive_difference na tumatagal sa isang argumento, mga numero.
# Linya 2: Lumilikha ang linyang ito ng walang laman na listahan na tinatawag na diff.
# Linya 3: Ang linyang ito ay para sa loop na umuulit sa haba ng mga numerong minus one.
# Linya 4: Ang linyang ito ay nagdaragdag ng ganap na halaga ng pagkakaiba sa pagitan ng bawat elemento sa mga numero sa diff list.
# Linya 5: Ibinabalik ng linyang ito ang listahan ng diff pagkatapos itong ma-populate ng lahat ng pagkakaiba sa pagitan ng magkakasunod na elemento sa mga numero.
# Linya 8: Ang linyang ito ay nagtatakda ng variable na tinatawag na mga numero na katumbas ng isang listahan na naglalaman ng 2, 4, 6, at 8.
# Linya 9: Ang linyang ito ay nagpi-print ng resulta ng pagtawag ng consecutive_difference sa mga numero.
Maghanap ng magkakasunod na numero sa isang listahan sa Python
Ang paghahanap ng magkakasunod na numero sa isang listahan sa Python ay medyo madali. Ang pinakasimpleng diskarte ay ang pag-ikot sa listahan at ihambing ang bawat elemento sa nauna nito. Kung ang pagkakaiba sa pagitan ng dalawang elemento ay 1, kung gayon ang mga ito ay magkakasunod na numero.
Narito ang isang halimbawa kung paano ito magagawa:
mga numero = [1,2,3,4,5,6] # Listahan ng mga numero
consecutive_numbers = [] # Listahan upang mag-imbak ng magkakasunod na numero
para sa i in range(len(numbers)-1): # Loop through list
if (numbers[i+1] – numbers[i]) == 1: # Suriin kung 1 ang pagkakaiba sa pagitan ng dalawang elemento
consecutive_numbers.append(numbers[i]) # Idagdag ang elemento sa listahan ng magkakasunod na numero
consecutive_numbers.append(numbers[i+1]) # Idagdag ang susunod na elemento sa listahan ng magkakasunod na numero
print(consecutive_numbers) # Print out list ng magkakasunod na numero
Kunin ang pagkakaiba sa pagitan ng magkakasunod na numero sa isang listahan
Sa Python, maaari mong makuha ang pagkakaiba sa pagitan ng magkakasunod na numero sa isang listahan sa pamamagitan ng paggamit ng zip() function. Ang zip() function ay tumatagal ng dalawa o higit pang mga iterable at nagbabalik ng iterator ng tuple. Ang unang item sa bawat naipasa na iterable ay pinagsama-sama, pagkatapos ay ang pangalawang item sa bawat naipasa na iterable ay ipapares nang magkasama, at iba pa. Upang makuha ang pagkakaiba sa pagitan ng magkakasunod na numero sa isang listahan, maaari mong gamitin ang zip() upang ipares ang bawat numero sa hinalinhan nito at pagkatapos ay ibawas ang mga ito upang makuha ang pagkakaiba. Halimbawa:
list_numbers = [1, 2, 3, 4]
mga pagkakaiba = [y – x para sa x, y sa zip(list_numbers[:-1], list_numbers[1:])]
print(pagkakaiba) # Output: [1, 1, 1]