Python – Elementos circundantes a K

Dado Matrix, de cada fila, obtenga los elementos circundantes de K, si están presentes.

Entrada : test_list = [[7, 6, 3, 2], [5, 6], [2, 1], [6, 1, 2]], K = 6 
Salida : [[7, 3], [5 ], [], [1]] 
Explicación : se extraen todos los elementos rodeados por 6.

Entrada : test_list = [[7, 6, 3, 2], [5, 6], [2, 1], [6, 1, 2]], K = 1 
Salida : [[], [], [2 ], [6, 2]] 
Explicación : se eliminan todos los elementos rodeados por 1. 
 

Método #1: Usar index() + loop + probar/excepto

En esto, verificamos el índice de elementos usando index(), y luego obtenemos los elementos circundantes requeridos accediendo a los elementos siguientes y anteriores. Si el elemento no está presente, se devuelve una lista vacía.

Python3

# Python3 code to demonstrate working of 
# Surrounding elements to K
# Using index() + loop + try/except
  
# initializing list
test_list = [[7, 6, 3, 2], [5, 6], [2, 1], [6, 1, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K 
K = 6
  
res = []
for sub in test_list:
      
    # getting index 
    try :
        idx = sub.index(K)
    except Exception as e :
        res.append([])
        continue
      
    # appending Surrounding elements
    if idx != 0 and idx != len(sub) - 1:
        res.append([sub[idx - 1], sub[idx + 1]])
    elif idx == 0:
        res.append([sub[idx + 1]])
    else : res.append([sub[idx - 1]])
  
# printing result 
print("The Surrounding elements : " + str(res))

Producción:

La lista original es: [[7, 6, 3, 2], [5, 6], [2, 1], [6, 1, 2]]
Los elementos circundantes: [[7, 3], [5] , [], [1]]

Método #2: Usando index() + en operator + loop

En esto, verificamos si el elemento está presente en una fila antes de la aplicación de index(), para evitar usar el bloque try/except. Resto todas las funcionalidades son las mismas que el método anterior.

Python3

# Python3 code to demonstrate working of
# Surrounding elements to K
# Using index() + in operator + loop
  
# initializing list
test_list = [[7, 6, 3, 2], [5, 6], [2, 1], [6, 1, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 6
  
res = []
for sub in test_list:
  
    # getting index
    # checking for element presence in row
    if K in sub:
        idx = sub.index(K)
    else:
        res.append([])
        continue
  
    # appending Surrounding elements
    if idx != 0 and idx != len(sub) - 1:
        res.append([sub[idx - 1], sub[idx + 1]])
    elif idx == 0:
        res.append([sub[idx + 1]])
    else:
        res.append([sub[idx - 1]])
  
# printing result
print("The Surrounding elements : " + str(res))

Producción:

La lista original es: [[7, 6, 3, 2], [5, 6], [2, 1], [6, 1, 2]]
Los elementos circundantes: [[7, 3], [5] , [], [1]]

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 *