Genere una matriz de todas las letras y dígitos


94

Usando ruby, ¿es posible hacer una matriz de cada letra del alfabeto y 0-9 fácilmente?

Respuestas:


145
[*('a'..'z'), *('0'..'9')] # doesn't work in Ruby 1.8

o

('a'..'z').to_a + ('0'..'9').to_a # works in 1.8 and 1.9

o

(0...36).map{ |i| i.to_s 36 }

(el Integer#to_smétodo convierte un número en una cadena que lo representa en un sistema numérico deseado )


2
¿Existe un nombre particular para el *operador utilizado en este contexto? Es nuevo para mi
Michael Burr

1
@Michael Burr, operador de splat . Vea aquí y aquí
Nakilon

4
por favor indique en respuesta que el * código de muestra funcionará en Ruby 1.9 pero no en Ruby 1.8
Zabba

2
@Zabba, acabas de indicarlo en tu comentario ...)
Nakilon

3
La evaluación comparativa en Ruby 2.1 [* ('a' .. 'z'), * ('0' .. '9')] es un poco más del doble de rápido que (0 ... 36) .map {| i | i.to_s 36} (1.450000s versus 2.26000s donde n = 100,000). Si se desea incluir mayúsculas, use lo siguiente: [* ('a' .. 'z'), * ('A' .. 'Z'), * ('0' .. '9')]
Viet

33

para letras o números, puede formar rangos e iterar sobre ellos. intente esto para tener una idea general:

("a".."z").each { |letter| p letter }

para obtener una matriz, intente lo siguiente:

("a".."z").to_a


6

Prueba esto:

alphabet_array = [*'a'..'z', *'A'..'Z', *'0'..'9']

O como cadena:

alphabet_string = alphabet_array.join

3
letters = *('a'..'z')

=> ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]


Aunque esto puede responder a la pregunta, no hay explicación de su código. Actualice su respuesta para proporcionar una explicación de lo que está haciendo. ¡Gracias!
Miroslav Glamuzina

2
myarr = [*?a..?z]       #generates an array of strings for each letter a to z
myarr = [*?a..?z] + [*?0..?9] # array of strings a-z and 0-9

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.