How to check whether characters of all string elements are in lexical order or not in Python

Given a list with string elements, the task is to write a Python program to return True if all list elements are sorted. The point of caution here is to keep in mind we are comparing characters of a string list element with other characters of the same list element and not string elements with each other. 

Examples:

Input : test_list = [“dent”, “flop”, “most”, “cent”]

Output : True

Explanation : All characters are sorted.

 

Input : test_list = [“dent”, “flop”, “mist”, “cent”]

Output : False

Explanation : m > i in mist, hence unordered. So, False is returned.

Method 1 : Using loop and sorted()

In this, we iterate for each String and test if all the Strings are ordered using sorted(), if any string is not sorted/ordered, the result is flagged off.

Example:

# initializing list
test_list = ["dent", "flop", "most", "cent"]

# printing original list
print("The original list is : " + str(test_list))

res = True
for ele in test_list:

	# check for ordered string
	if ele != ''.join(sorted(ele)):
		res = False
		break

# printing result
print("Are all strings ordered ? : " + str(res))

Output:

The original list is : [‘dent’, ‘flop’, ‘most’, ‘cent’]
Are all strings ordered ? : True

Method 2 : Using all() and sorted()

In this, loop is avoided and all the strings to be sorted is checked using all(), which returns True if all the elements return true for certain condition.

Example:

# initializing list
test_list = ["dent", "flop", "most", "cent"]

# printing original list
print("The original list is : " + str(test_list))

# using all() to check all elements to be sorted
res = all(ele == ''.join(sorted(ele)) for ele in test_list)

# printing result
print("Are all strings ordered ? : " + str(res))

Output:

The original list is : [‘dent’, ‘flop’, ‘most’, ‘cent’]

Are all strings ordered ? : True

 

Submit Your Programming Assignment Details