Articles of eval

cadena a matriz numérica

De un progtwig genero un montón de datos y se almacena en un archivo. Un ejemplo del contenido del archivo es [[1, 2, 3], [4, 5, 6]] Como puede ver, los datos tienen la forma exacta de una matriz. Más adelante en otro progtwig quiero leer los datos y usarlos. estoy usando text_file = open(‘DataFile.txt’) […]

Uso de exec y eval en Python.

Así que he entendido lo que hacen exec y eval y también compile . ¿Pero por qué necesitaría usarlos? Estoy siendo poco claro en el escenario de uso. ¿Alguien me puede dar algunos ejemplos para que pueda apreciar mejor el concepto? Porque bien sé que todo es teoría.

ast.literal_eval para variables en python?

Supongamos que tengo un archivo example.py : ejemplo de importación VVV = 2 DictionaryNameB = { ‘a’ : VVV, ‘bb’ : ‘SomethingB’, ‘c’ : False, ‘ccc’ : None, ‘dddd’ : ‘true’, ‘eeeee’ : 0.123456, ‘f’ : 2, ‘h’ : [1,2,3] } Escribí una función que usa ast.literal_eval() : def getDicFromFile(self, dic_name): with open( ‘example.py’ ) […]

Eval no funciona en una cadena multilínea

Tengo problemas con la ejecución de una cadena multilínea con la función eval de python / code = ”’ def main(): print “this is a test” main() ”’ eval(code) Traceback (most recent call last): File “”, line 1, in eval(code) File “”, line 3 def main(): ^ SyntaxError: invalid syntax

Convertir la lista de posiciones de longitud arbitraria en un índice para una lista anidada

Asumiendo esta lista nestedList = [“a”, “b”, [1, 2, 3], “c”,[4, 5, 6, [100, 200, 300]], “d”] Tengo una función que devuelve una lista de posiciones para una lista anidada de profundidad arbitraria. Ejemplos : [2, 1] -> “2” [5] -> “d” [4, 3, 2] -> “300” Como puede ver, al principio no está claro […]

¿Por qué eval () de Python rechaza esta cadena multilínea y cómo puedo solucionarlo?

Estoy intentando evaluar la siguiente cadena con sangría de tabulación: ”’for index in range(10): os.system(“echo ” + str(index) + “”) ”’ Me sale, “Hubo un error: syntax no válida, línea 1” ¿De qué se queja? ¿Debo hacer sangría para coincidir con la sentencia eval (), o escribirla en un archivo de cadena o archivo temporal […]

¿Por qué esta cadena no funciona con ast.literal_eval

Me sale un error de cadena con formato incorrecto. Aquí están mis pruebas >>> eval(“‘Hello:: ‘+’fdsfds'”) ‘Hello:: fdsfds’ >>> import ast >>> ast.literal_eval(“‘Hello:: ‘+’fdsfds'”) Traceback (most recent call last): File “”, line 1, in ast.literal_eval(“‘Hello:: ‘+’fdsfds'”) File “C:\Python27\lib\ast.py”, line 80, in literal_eval return _convert(node_or_string) File “C:\Python27\lib\ast.py”, line 79, in _convert raise ValueError(‘malformed string’) ValueError: malformed […]

Python – El libro de Zelle usa eval (), ¿está mal?

TENGA EN CUENTA: NO se trata del uso de eval (), se trata de la calidad potencial (o la falta de ella) de un libro en el que se usa y se enseña. SO ya tiene innumerables hilos sobre eval () en Python. Arriesgándome a invitar a la ira y los comentarios negativos de SO, […]

Python: ¿Una forma de acelerar una sentencia eval ejecutada repetidamente?

En mi código, estoy usando eval para evaluar una expresión de cadena dada por el usuario. ¿Hay alguna manera de comstackr o acelerar esta statement? import math import random result_count = 100000 expression = “math.sin(v[‘x’]) * v[‘y’]” variable = dict() variable[‘x’] = [random.random() for _ in xrange(result_count)] variable[‘y’] = [random.random() for _ in xrange(result_count)] # […]

Manera de Pythonic para evaluar todos los valores octales en una cadena como enteros

Así que tengo una cadena que se parece a “012 + 2 – 01 + 24” por ejemplo. Quiero poder evaluar rápidamente (menos código) esa expresión … Podría usar eval () en la cadena, pero no quiero que 012 se represente en forma octal (10), quiero que se represente como un int (12). Mi solución […]