Programa de Python para encontrar la posición del carácter de la palabra Kth de una lista de strings

Dada una lista de strings. La tarea es encontrar el índice de la posición del carácter de la palabra, que se encuentra en el índice Kth en la lista de strings.

Ejemplos:

Entrada : test_list = [“geekforgeeks”, “is”, “best”, “for”, “geeks”], K = 21 
Salida : 0
Explicación : el índice 21 aparece en “geeks” y apunta a “g”, que es 0 elemento de palabra.

Entrada : test_list = [“geekforgeeks”, “is”, “best”, “for”, “geeks”], K = 15 
Salida : 1
Explicación : el índice 15 aparece en “best” y apunta a “e”, que es el primero elemento de palabra.

Método n. ° 1: usar enumerar() + comprensión de lista

En esto, usamos enumerate() anidado para verificar índices de palabras y strings en la lista, la comprensión de lista se usa para encapsular la lógica en 1 línea.

Python3

# Python3 code to demonstrate working of
# Word Index for K position in Strings List
# Using enumerate() + list comprehension
  
# initializing list
test_list = ["geekforgeeks", "is", "best", "for", "geeks"]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 20
  
# enumerate to get indices of all inner and outer list
res = [ele[0] for sub in enumerate(test_list) for ele in enumerate(sub[1])]
  
# getting index of word
res = res[K]
  
# printing result
print("Index of character at Kth position word : " + str(res))
Producción

La lista original es: [‘geekforgeeks’, ‘is’, ‘best’, ‘for’, ‘geeks’]
Índice de caracteres en la posición K-ésima palabra: 2

 Método #2: Usando next() + zip() + count()

En esto, emparejamos la cantidad de palabras con sus conteos usando zip() , y acumulamos hasta que no alcancemos el Kth Index.

Python3

# Python3 code to demonstrate working of
# Word Index for K position in Strings List
# Using next() + zip() + count()
from itertools import count
  
# initializing list
test_list = ["geekforgeeks", "is", "best", "for", "geeks"]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 20
  
# count() for getting count
# pairing using zip()
cnt = count()
res = next(j for sub in test_list for j, idx in zip(
    range(len(sub)), cnt) if idx == K)
  
# printing result
print("Index of character at Kth position word : " + str(res))
Producción

La lista original es: [‘geekforgeeks’, ‘is’, ‘best’, ‘for’, ‘geeks’]
Índice de caracteres en la posición K-ésima palabra: 2

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 *