Skip to content

Instantly share code, notes, and snippets.

@jobayer
Last active April 19, 2022 20:35
Show Gist options
  • Save jobayer/df9760573779da75a08f6171468062f5 to your computer and use it in GitHub Desktop.
Save jobayer/df9760573779da75a08f6171468062f5 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 19 21:32:12 2022
@author: Md Jobayer
"""
List1 = [1, 2, 5, 7, 8, 13, 16, 17, 20, 21]
def second_min(list):
m1, m2 = min(list), None
for x in list:
if(x > m1):
if(m2 is None):
m2 = x
elif (x < m2):
m2 = x
return m2
def replace_with_second_min(list):
m1, m2 = min(list), second_min(list)
for i, x in enumerate(list):
if(x == m1):
list[i] = m2
return list
def all_are_equal(list):
equal = True
first_item = list[0]
for x in list:
if(x != first_item):
equal = False
return equal
def processed_list(list):
equal = all_are_equal(list)
new_list = replace_with_second_min(list)
return equal, new_list
def do_stuff(list):
while True:
equal, new_list = processed_list(list)
if not equal:
print('############################')
print(f'New list = {new_list}')
print(f'First min = {min(list)}')
print(f'Second min = {second_min(list)}')
print('############################\n\n')
list = new_list
else:
break
print('############################')
print(f'For list = {List1}')
print(f'First min = {min(List1)}')
print(f'Second min = {second_min(List1)}')
print('############################\n\n')
do_stuff(List1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment