use map and a lambda function to sort a list of tuples
myDict = [{'from': '10.246.47.121' },{'from': '10.60.0.111'}, {'from': '192.168.156.113'}, {'from': '192.168.20.100'}]
def store_dict(myDict):
myDict_by_ip = {"from":[]}
for d in myDict:
elements=d["from"].split(".")
ip = [('element1',int(elements[0])),('element2',int(elements[1])),('element3',int(elements[2])),('element4',int(elements[3]))]
myDict_by_ip["from"].append(ip)
return myDict_by_ip
myDict_by_ip = store_dict(myDict)
def sort_array(arr):
return sorted(arr, key=lambda x: (x[0],x[1],x[2],x[3]),reverse=False)
result=list(map(lambda x:x,sort_array(myDict_by_ip['from'])))
data=[]
for components in result:
ip=[]
for key,value in components:
ip.append(str(value))
ip_string='.'.join(ip)
data.append(ip_string)
print(data)