group of related variables can be stored one after another in contiguous portion of the computer' memory we will denote such representation as an array as tangible examplea text string is stored as an ordered sequence of individual characters in pythoneach character is represented using the unicode character setand on most computing systemspython internally represents each unicode character with bits ( bytesthereforea six-character stringsuch as sample would be stored in consecutive bytes of memoryas diagrammed in figure figure python string embedded as an array of characters in the computer' memory we assume that each unicode character of the string requires two bytes of memory the numbers below the entries are indices into the string we describe this as an array of six characterseven though it requires bytes of memory we will refer to each location within an array as celland will use an integer index to describe its location within the arraywith cells numbered starting with and so on for examplein figure the cell of the array with index has contents and is stored in bytes and of memory each cell of an array must use the same number of bytes this requirement is what allows an arbitrary cell of the array to be accessed in constant time based on its index in particularif one knows the memory address at which an array starts ( in figure )the number of bytes per element ( for unicode character)and desired index within the arraythe appropriate memory address can be computed using the calculationstart cellsize index by this formulathe cell at index begins precisely at the start of the arraythe cell at index begins precisely cellsize bytes beyond the start of the arrayand so on as an examplecell of figure begins at memory location of coursethe arithmetic for calculating memory addresses within an array can be handled automatically thereforea programmer can envision more typical high-level abstraction of an array of characters as diagrammed in figure figure higher-level abstraction for the string portrayed in figure