जब टुपल्स की सूची में लगातार कॉलम अंतर खोजने की आवश्यकता होती है, तो इस पर पुनरावृत्ति की जा सकती है, और 'abs' मेथड और 'append' मेथड का उपयोग किया जा सकता है।
'abs' मेथड निरपेक्ष या पॉजिटिव मान लौटाता है, और append सूची में तत्व जोड़ता है।
उदाहरण
my_list = [(67, 89, 32), (11, 23, 44), (65, 75, 88)]
print("सूची है: ")
print(my_list)
print("K का मान इनिशियलाइज़ किया गया है")
K = 1
my_result = []
for idx in range(0, len(my_list) - 1):
my_result.append(abs(my_list[idx][K] - my_list[idx + 1][K]))
print("परिणामी टुपल सूची है: ")
print(my_result)
आउटपुट
सूची है: [(67, 89, 32), (11, 23, 44), (65, 75, 88)] K का मान इनिशियलाइज़ किया गया है परिणामी टुपल सूची है: [66, 52]
व्याख्या
टुपल्स की एक सूची परिभाषित की जाती है, और कंसोल पर प्रदर्शित की जाती है।
K का मान इनिशियलाइज़ किया जाता है और कंसोल पर प्रदर्शित किया जाता है।
एक खाली सूची परिभाषित की जाती है।
टुपल्स की सूची पर पुनरावृत्ति की जाती है, और तत्वों के बीच अंतर निर्धारित किया जाता है।
यह अंतर खाली सूची में जोड़ा जाता है।
इसे आउटपुट के रूप में कंसोल पर प्रदर्शित किया जाता है।
कोड विश्लेषण
K=1 का अर्थ है दूसरा कॉलम (0-आधारित इंडेक्सिंग)
कॉलम 1 के मान: 89, 23, 75
लगातार अंतर: |89-23|=66, |23-75|=52
abs()निरपेक्ष मान सुनिश्चित करता है
सूची समझ संस्करण
my_result = [abs(my_list[i][K] - my_list[i+1][K]) for i in range(len(my_list)-1)]
सामान्यीकरण: कोई भी कॉलम, कोई भी ऑपरेशन
def consecutive_column_op(tuples_list, col_idx, operation):
"""operation: 'diff', 'sum', 'product', 'ratio', आदि"""
ops = {
'diff': lambda a, b: abs(a - b),
'sum': lambda a, b: a + b,
'product': lambda a, b: a * b,
'ratio': lambda a, b: a / b if b != 0 else None
}
op_func = ops.get(operation, lambda a, b: abs(a - b))
return [op_func(tuples_list[i][col_idx], tuples_list[i+1][col_idx])
for i in range(len(tuples_list)-1)]
पांडास के साथ (बड़े डेटासेट के लिए)
import pandas as pd df = pd.DataFrame(my_list) # कॉलम K के लगातार अंतर df[K].diff().abs().dropna().tolist()
एज केस
खाली सूची: [] → []
एक टुपल: [(1,2)] → [] (कोई लगातार जोड़ी नहीं)
कॉलम इंडेक्स आउट ऑफ रेंज: IndexError उठाएगा
गैर-संख्यात्मक मान: TypeError उठाएगा