TheBrain نشر 21 ديسمبر 2015 أرسل تقرير نشر 21 ديسمبر 2015 أريد أن أجعل حلقة التكرار for تدور حول كل عنصرين بدلا من عنصر واحد فكيف أستطيع فعل ذلك في لغة روبي؟ مثال على ما أريده:l = [1,2,3,4,5,6] for i,k in ???: print str(i), '+', str(k), '=', str(i+k)حيث ستكون المخرجات كالتالي:1+2=3 3+4=7 5+6=11 اقتباس
0 هشام رزق الله نشر 21 ديسمبر 2015 أرسل تقرير نشر 21 ديسمبر 2015 يمكنك جعل حلقة التكرار تدور حول كل عنصرين معا بدلا من عنصر واحد بطرق متعددة في لغة بايثون، فيمكنك مثلا إنشاء دوال للقيام بذلك مثال دالة pairwise() ومن ثم استخدامها للتكرار كما في المثال التالي:from itertools import izip def pairwise(iterable): "s -> (s0,s1), (s2,s3), (s4, s5), ..." a = iter(iterable) return izip(a, a) for x, y in pairwise(l): print "%d + %d = %d" % (x, y, x + y)أو يمكنك إنشاء دالة grouped() والتي تشبه كثيرا الدالة السابقة لكنها تختلف قليلا في آلية عملها كما تظهر في المثال التالي:from itertools import izip def grouped(iterable, n): "s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), (s2n,s2n+1,s2n+2,...s3n-1), ..." return izip(*[iter(iterable)]*n) for x, y in grouped(l, 2): print "%d + %d = %d" % (x, y, x + y)ومن الطرق الأخرى أيضا للدوران حول كل عنصرين معا هي عن طريق إنشاء tuple يتكون من عنصرين كما في المثال التالي:data = [1,2,3,4,5,6] for i,k in zip(data[0::2], data[1::2]): print str(i), '+', str(k), '=', str(i+k) اقتباس
السؤال
TheBrain
أريد أن أجعل حلقة التكرار for تدور حول كل عنصرين بدلا من عنصر واحد فكيف أستطيع فعل ذلك في لغة روبي؟ مثال على ما أريده:
حيث ستكون المخرجات كالتالي:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.