8
$\begingroup$

I want to create a list of length n with the letters of the alphabet.

For example, if n = 3, by list would be {a,b,c}. If n=6, the list would be {a,b,c,d,e,f}.

Is there any easy way to do this?

$\endgroup$
0
16
$\begingroup$

No need to use *CharacterCode[] :

letters[n_] := CharacterRange["a", "z"][[;; n]]

letters[3]
(*
{"a", "b", "c"}
*)
$\endgroup$
4
  • 2
    $\begingroup$ I'd say ugly but nice :) $\endgroup$
    – Kuba
    May 23 '14 at 12:52
  • 1
    $\begingroup$ Ha, it works even with non-Latin alphabets.. It is new for me, that Mathematica can correctly understand Cyrillic ranges of symbols :) $\endgroup$
    – Rom38
    May 23 '14 at 13:03
  • 1
    $\begingroup$ @Rom38 It works with all letters of all types that exist as a contiguous block in the character space. $\endgroup$ May 23 '14 at 13:12
  • $\begingroup$ Yes, it is true, but just 3-4 years ago Mathematica had permanent problems with Cyrillic alphabet (mostly regarded to encodings) $\endgroup$
    – Rom38
    May 23 '14 at 14:50
13
$\begingroup$

Nowadays, one can use Alphabet[] along with Take[] or Part[] + Span[]:

Take[Alphabet[], 6]
   {"a", "b", "c", "d", "e", "f"}

Take[Alphabet[], {19, UpTo[28]}]
   {"s", "t", "u", "v", "w", "x", "y", "z"}

In addition to this, Alphabet[] is aware of alphabets other than the Latin alphabet:

Take[Alphabet["Greek"], 5]
   {"α", "β", "γ", "δ", "ε"}

Take[Alphabet["Hebrew"], {4, 8}]
   {"ד", "ה", "ו", "ז", "ח"}
$\endgroup$
3
$\begingroup$
 lttrsF = FromCharacterCode /@ (ToCharacterCode[#][[1]] + Range[0, #2-1]) &
 lttrsF["b", 4]
 (*  {"b", "c", "d", "e"}  *)
$\endgroup$
2
$\begingroup$

You might want to use FromCharacterCode:

FromCharacterCode[n]:

gives a string consisting of the character with integer code n.

letters[n_] := StringSplit[FromCharacterCode[Range[97, 97 + n - 1]], ""]
letters@3

{"a", "b", "c"}

$\endgroup$

This site is temporarily in read only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .