এখানে একটি বিকল্প রয়েছে, যা টিপলস তৈরি করতে গণনা () ব্যবহার করে না (সাইলেন্টঘস্টের মূল উত্তর হিসাবে)।
এটি আমার কাছে আরও পাঠযোগ্য বলে মনে হচ্ছে। (আমি যদি গণনা ব্যবহারের অভ্যাসে থাকি তবে আমি অন্যরকম অনুভব করতাম)) ক্যাভেট: আমি দুটি পদ্ধতির পারফরম্যান্স পরীক্ষা করিনি।
# Returns a new list. "lst" is not modified.
def delete_by_indices(lst, indices):
indices_as_set = set(indices)
return [ lst[i] for i in xrange(len(lst)) if i not in indices_as_set ]
দ্রষ্টব্য: পাইথন 2.7 বাক্য গঠন। পাইথন 3, xrange
=> এর জন্য range
।
ব্যবহার:
lst = [ 11*x for x in xrange(10) ]
somelist = delete_by_indices( lst, [0, 4, 5])
somelist:
[11, 22, 33, 66, 77, 88, 99]
--- বোনাস ---
একটি তালিকা থেকে একাধিক মান মুছুন। এটি হ'ল আমাদের যে মানগুলি মুছতে চাই তা রয়েছে:
# Returns a new list. "lst" is not modified.
def delete__by_values(lst, values):
values_as_set = set(values)
return [ x for x in lst if x not in values_as_set ]
ব্যবহার:
somelist = delete__by_values( lst, [0, 44, 55] )
somelist:
[11, 22, 33, 66, 77, 88, 99]
এটি আগের মত একই উত্তর, তবে এবার আমরা মুছে ফেলার ভ্যালু সরবরাহ করেছি [0, 44, 55]
।