Python | Prueba si la string es monótona

A veces, mientras trabajamos con strings de Python, podemos tener un problema en el que tenemos una string y deseamos verificar si una string aumenta o disminuye consecutivamente. Este tipo de problema tiene aplicación tanto en datos como en programación día a día. Analicemos ciertas formas en que se puede resolver este problema.

Método #1: Uso map() + split()de la comprensión de lista +
La combinación de las funciones anteriores se puede utilizar para realizar esta tarea. En esto, dividimos la string en la lista, separada por delimitación y luego, para la prueba de problemas monótonos en la lista, empleamos la comprensión de la lista.

# Python3 code to demonstrate working of 
# Test if String is Monotonous
# Using list comprehension + map() + split()
  
# initializing string
test_str = "6, 5, 4, 3, 2, 1"
  
# printing original string
print("The original string is : " + test_str)
  
# initializing delim 
delim = ", "
  
# Test if String is Monotonous
# Using list comprehension + map() + split()
temp = list(map(int, test_str.split(delim)))
direc = temp[-1] > temp[0] or -1
res = temp == list(range(temp[0], temp[-1] + direc, direc))
  
# printing result 
print("Is string Monotonous ? : " + str(res)) 
Producción :

The original string is : 6, 5, 4, 3, 2, 1
Is string Monotonous ? : True

Método #2: Usarmap() + split() + zip() + len()
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En esto, realizamos la tarea de dividir como se indicó anteriormente, pero la tarea de realizar lo monótono se realiza mediante zip() y len().

# Python3 code to demonstrate working of 
# Test if String is Monotonous
# Using map() + split() + zip() + len()
  
# initializing string
test_str = "6, 5, 4, 3, 2, 1"
  
# printing original string
print("The original string is : " + test_str)
  
# initializing delim 
delim = ", "
  
# Test if String is Monotonous
# Using map() + split() + zip() + len()
temp = list(map(int, test_str.split(delim)))
diff = set(i - j for i, j in zip(temp, temp[1:]))
res = len(diff) == 1 and diff.pop() in (1, -1)
  
# printing result 
print("Is string Monotonous ? : " + str(res)) 
Producción :

The original string is : 6, 5, 4, 3, 2, 1
Is string Monotonous ? : True

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *