[Tutor] How to print certain elements
Mark Lawrence
breamoreboy at yahoo.co.uk
Tue Jan 21 22:49:47 CET 2014
On 21/01/2014 10:24, Mkhanyisi Madlavana wrote:
> How would I print washington and monroe using [:]?
> print X[::3]
> How would I print every element but those two names?
> print X[1::2]
>
>
> On 21 January 2014 12:18, Alan Gauld <alan.gauld at btinternet.com
> <mailto:alan.gauld at btinternet.com>> wrote:
>
> On 21/01/14 06:18, Adriansanchez wrote:
>
> Hello everyone,
> I am newbie to Python and programming in general. My question
> is, given a list:
> X=['washington','adams','__jefferson','madison','monroe']
> And a string:
> Y='washington,adams,jefferson,__madison,monroe'
>
> How would I print washington and monroe using [:]?
> How would I print every element but those two names?
>
>
> The [:] syntax is used for selecting a range of values
> from a starting point to a finish. Its not appropriate
> for selecting arbitrary items out of the list.
>
> If you know which items you want you can use a simple
> index to access them (remember the first item is index 0)
>
> So to print the first item and the fourth item:
>
> print(X[0],X[3])
>
> In your case it's the first and last so we can do
> a similar thing:
>
> print(X[0], X[4])
>
> But for the last element we can alternatively use
> a shortcut to save counting the indexes; that's use
> an index of -1:
>
> print(X[0],X[-1])
>
> Printing every element except those two is harder.
> The simplest approach is to use a loop to process
> the list and test each value:
>
> for name in X:
> if name not in (X[0], X[-1]):
> print name
>
> For the special case of excluding the first and
> last names you could use the [:] notation like
> this:
>
> print X[1:-1]
>
> But that only works where you want *all* the
> names in a sequence between two end points.
>
> Finally there is a more advanced way of filtering
> out items from a list called a list comprehension:
>
> print ( [name for name in X if name not in (X[0],X[-1])] )
>
> Which is pretty much our 'for' loop above, written in
> a shorthand single line form.
>
> hth
>
If you must top post please get your facts right.
In [1]: X=['washington','adams','jefferson','madison','monroe']
In [2]: print(X[::3])
['washington', 'madison']
In [3]: print(X[1::2])
['adams', 'madison']
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
More information about the Tutor
mailing list