পাইথন ফরচ সমতুল্য


189

আমি পাইথনে ডুব দিচ্ছি এবং ফোরচ পুনরাবৃত্তি সম্পর্কে আমার একটি প্রশ্ন আছে। আমি পাইথনে নতুন এবং সি # তে আমার কিছু অভিজ্ঞতা আছে। সুতরাং আমি ভাবছি, পাইথনে যদি আমার সংগ্রহে সমস্ত আইটেম জুড়ে পুনরাবৃত্তির জন্য কিছু সমতুল্য ফাংশন থাকে

pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]

বা এই জাতীয় কিছু।


উত্তর:


292

অবশ্যই। লুপের জন্য একটি।

for f in pets:
    print f

যদি আমাকে অবশ্যই সূচক / কীটিও জানতে হয় তবে কী হবে?
মোমবাতি জ্যাক

24
তাহলে আপনি গণনা ব্যবহার করবেন use for k,v in enumerate(pets): ইত্যাদি
হান্নু


12

এটি পর্যবেক্ষণ করাও আকর্ষণীয়

একটি ক্রম সূচকগুলি পুনরাবৃত্তি করতে, আপনি একত্রিত করতে পারেন range()এবং নীচের len()হিসাবে:

a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
  print(i, a[i])

আউটপুট

0 Mary
1 had
2 a
3 little
4 lamb

সম্পাদনা # 1: বিকল্প উপায়:

ক্রমটি লুপ করার সময়, অবস্থান সূচক এবং সংশ্লিষ্ট মান একই সাথে enumerate()ফাংশনটি ব্যবহার করে পুনরুদ্ধার করা যায় ।

for i, v in enumerate(['tic', 'tac', 'toe']):
  print(i, v)

আউটপুট

0 tic
1 tac
2 toe

4

আপডেট হওয়া উত্তরের জন্য আপনি forEachপাইথনে সহজেই একটি ফাংশন তৈরি করতে পারেন:

def forEach(list, function)
  for i,v in enumerate(list))
    function(v, i, list)

আপনি এই খাপ খাওয়ানো করতে পারে map, reduce, filter, এবং অন্যান্য ভাষায় বা প্রাধান্য থেকে অন্য কোন বিন্যাস ক্রিয়াকলাপগুলির তোমাদের উপর আনতে চান না। লুপগুলির জন্য যথেষ্ট দ্রুত, তবে বয়লার প্লেটটি forEachঅন্য ফাংশনগুলির চেয়ে লম্বা । স্থানীয় পয়েন্টারের সাথে ক্লাসে এই ফাংশনগুলি রাখার জন্য আপনি তালিকাটিও বাড়িয়ে দিতে পারেন যাতে আপনি তাদের তালিকাগুলিতে সরাসরি কল করতে পারেন।


1
আপনি দয়া করে ব্যবহার অন্তর্ভুক্ত করতে পারেন?
স্কটিব্ল্যাডেস

3

উপরের উত্তরগুলি বৈধ, আপনি যদি কোনও ডিক {কী: মান over দিয়ে পুনরাবৃত্তি করছেন তবে এটিই আমি ব্যবহার করতে পছন্দ করি:

for key, value in Dictionary.items():
    print(key, value)

অতএব, যদি আমি আমার অভিধানে সমস্ত কী এবং মানগুলিকে আরও শক্তিশালী করার মতো কিছু করতে চাই, তবে আমি এটি করব:

stringified_dictionary = {}
for key, value in Dictionary.items():
    stringified_dictionary.update({str(key): str(value)})
return stringified_dictionary

এই ধরণের পুনরাবৃত্তি প্রয়োগ করার সময় এটি কোনও মিউটেশন সম্পর্কিত সমস্যাগুলি এড়ায়, যা আমার অভিজ্ঞতায় অনিয়মিত আচরণের (কখনও কখনও) কারণ হতে পারে।


এর আরও পঠনযোগ্য বিকল্পটি copyfor key, value in Dictionary.copy().items()
হ'ল অভিধানের একটিতে

1

একটি অভি জন্য আমরা একটি লুপ জন্য পুনরুক্তি করতে মাধ্যমে ব্যবহার করতে পারেন index, keyএবং value:

dictionary = {'a': 0, 'z': 25}
for index, (key, value) in enumerate(dictionary.items()):
     ## Code here ##
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.