Estoy buscando un patrón que coincida con una lista (posiblemente vacía) que consta de objetos atómicos idénticos (en el sentido de Equal []), pero no puedo entenderlo. Cualquier ayuda sería muy apreciada.Patrón para que coincida con la lista de elementos idénticos
Respuesta
Todas las respuestas por lo que parece mucho a No cumplió con el requisito de que los objetos coincidentes deben ser atomic. A continuación se hace esto:
Cases[testList, {a___?AtomQ} /; Equal[a]]
Si no se define idénticos en el sentido de Equal
se podría haber utilizado:
Cases[testList, {(a_?AtomQ) ...}]
Con una lista de pruebas ligeramente modificada verá otros métodos fallar el requisito
testList = {{1, 1.0, 1.0}, {a, b, c}, {Exp[Pi] + 1, Exp[Pi] + 1, Exp[Pi] + 1}, {}, {3}};
todos ellos coinciden incorrectamente con el 3er elemento también.
+1 para leer con cuidado :) –
Vaya. Sí, me perdí completamente eso. –
Gracias, sus tres versiones con comportamiento de coincidencia sutilmente diferente son muy instructivas. – reddish
¿Esto funciona para usted?
testList = {
{1, 1.0, 1.},
{a, b, c},
{0, Exp[Pi*I] + 1.0, Sin[Pi]}
}
Cases[testList, _List?(Equal @@ # &)]
No sé por qué, pero suelo olvidar la sintaxis '_? (Cond)'. Buen ejemplo para recordarlo. –
Usando Condition
, en lugar de PatternTest
:
In[31]:= testList = {{1, 1.0, 1.}, {a, b, c}, {0, Exp[Pi*I] + 1.0,
Sin[Pi]}, {}, {3}};
Cases[testList, {a___} /; Equal[a]]
Out[32]= {{1, 1., 1.}, {0, 0., 0}, {}, {3}}
(y la ampliación de la lista de casos de prueba de Mark para cubrir listas vacías y únicos.)
- 1. Patrón que coincide con los valores idénticos
- 2. función Lista Scala para agrupar elementos idénticos consecutivos
- 3. patrón de expresión regular que coincida con números, bloques alphabetcic
- 4. expresiones regulares para que coincida con EOF
- 5. expresión regular para que coincida con un patrón, pero excluye un conjunto de palabras
- 6. Regex para que coincida con Domain.CCTLD
- 7. C# expresiones regulares para que coincida con las palabras de la lista
- 8. Generando la expresión regular más corta para que coincida con una lista de palabras arbitraria
- 9. Uso grep para que coincida con un patrón en una línea de una sola vez
- 10. Regex para que coincida con palabras completas que comienzan con $
- 11. Colores de ordenación (hex) para que coincida con el arcoíris
- 12. Expresión regular para que no coincida con "www"
- 13. Expresión regular para que coincida con la dirección IP + comodín
- 14. WaitHandle.WaitAny para que coincida con la funcionalidad WaitForMultipleObjects
- 15. expresión regex para que coincida con la consonante
- 16. Listado de archivos en un directorio que coincida con un patrón en Java
- 17. Regex para que coincida con una palabra con signos + (más)
- 18. cómo agrupar elementos idénticos en serie Rubí
- 19. ¿Debo ser un patrón que coincida con cada valor de retorno?
- 20. Regex para que coincida con palabras de cierta longitud
- 21. Rastreador de errores distribuidos para que coincida con DVC
- 22. ¿Qué selector de JQuery excluye elementos con un elemento primario que coincida con un selector dado?
- 23. Regex para que coincida con todas las palabras, excepto una lista dada
- 24. ¿Cómo puedo comprobar si existe un nombre de archivo que coincida con un patrón en Perl?
- 25. Regex para que coincida con el último carácter de espacio
- 26. ¿Cómo puedo encontrar elementos que contengan un atributo data- * que coincida con un prefijo usando jquery
- 27. búsqueda de php (difusa) que coincida con
- 28. Regex para que coincida con la última parte de la URL con JavaScript
- 29. ¿Cómo se escribe un patrón de prueba de archivo mágico para que coincida con el final de un archivo?
- 30. Regex para que coincida con una ruta en C#
Por patrón, ¿te refieres a la expresión regular? – Dan
¿Ha intentado utilizar una PatternSequence? http://reference.wolfram.com/mathematica/ref/PatternSequence.html –
@Dan I Mathematica tiene _patterns_, es decir, expresiones para hacer coincidir construcciones de lenguaje/datos de Mathematica, y 'StringExpression's y' RegularExpression's para _strings_ . Rojizo parece referirse a patrones. –