Concatenación de los elementos en dos listas en Python.
Por ejemplo, el mensaje ‘Save our Soul’ sería encriptado como: “Sv u oliaeorSu” y luego quiero descifrar “Sv u oliaeorSu” a su forma original. Ya he realizado la encriptación, pero el descifrado parece difícil. Y al final quiero concatenar elementos de ambas listas en una nueva.
Por ejemplo,
lst1=[a,c,e,g]
lst2=[b,d,f]
La lista que quiero es lst3=[a,b,c,d,e,f,g]
str1=input("Ingrese la cadena ??")
mystr=""
list1=[]
list2=[]
for i in range(len(str1)):
if i%2==0:
list1.append(str1[i])
else:
list2.append(str1[i])
list1.append("i")
encrypted="".join(map(str,list1+list2))
print("Encriptación :",encrypted)
(b) Descifrado
list3=[];list4=[]
dec1=[];dec2=[]
longitud=len(list1+list2)
for i in range(longitud):
list3.append(encrypted[i])
else:
list4.append(encrypted[i])
if “i” in (list3):
list3.pop(list3.index(“i”))
print(*list3)
longitud1=len(list3)
if longitud1%2==0:
for i in range(longitud1//2):
dec1.append(list3[i])
dec2.append(list3[i+longitud1//2])
print(dec1)
print(dec2)
decX=[]
i=0
while(i<len(dec1)): print(dec1[i],end=”” )=”” print(dec2[i],end=”” )=”” i+=”1″ else:=”” for=”” i=”” in=”” range(longitud1//2+1):=”” dec1.append(list3[i])=”” dec2.append(list3[i+longitud1//2])=”” if=”” longitud1%2!=”0:” dec2.pop(0)=”” print(dec1)=”” print(dec2)=”” i=”0″></len(dec1)):><len(dec1)):
print(dec1[i],end=””)
if len(dec2) != len(dec1):
i+=1
print(dec2[i-1],end=””)
i+=1
i-=1
print(dec1[i],end="" )="" if="" len(dec2)="" !="len(dec1):" i+="1" print(dec2[i-1],end="" )="" i+="1" i-="1"></len(dec1)):
>
print(dec1[i],end="")
if len(dec2) != len(dec1):
i+=1
print(dec2[i-1],end="")
i+=1
i-=1
davy.ai
Parece haber un IndexError en el código proporcionado mientras se descifran y concatenan los elementos de ambas listas. Específicamente, la línea
print(dec2[i-1],end="")
está dando el error de “índice de lista fuera de rango”. Para solucionar este error, necesitamos cambiar la forma en que recorremos la listadec2
. Una solución posible es usar una variable de contador adicionalj
para iterar sobredec2
, y reiniciar su valor a 0 si excede la longitud dedec2
. Aquí está el código modificado:“`python
str1 = input(“Ingresa la cadena ??”)
list1 = []
list2 = []
for i in range(len(str1)):
if i % 2 == 0:
list1.append(str1[i])
else:
list2.append(str1[i])
list1.append(“i”)
encrypted = “”.join(map(str, list1 + list2))
print(“Encriptación:”, encrypted)
Descifrado
list3 = []
list4 = []
dec1 = []
dec2 = []
length = len(list1 + list2)
for i in range(length):
list3.append(encrypted[i])
else:
list4.append(encrypted[i])
if “i” in list3:
list3.remove(“i”)
len1 = len(list3)
if len1 % 2 == 0:
for i in range(len1 // 2):
dec1.append(li