'Returns a slice of the given list between ``start`` and ``end`` indexes.
The given list is never altered by this keyword.
If both ``start`` and ``end`` are given, a sublist containing values
from ``start`` to ``end`` is returned. This is the same as
``list[start:end]`` in Python. To get all items from the beginning,
use 0 as the start value, and to get all items until and including
the end, use ``None`` (default) as the end value.
Using ``start`` or ``end`` not found on the list is the same as using
the largest (or smallest) available index.
Examples (incl. Python equivalents in comments):
| ${x} = | Get Slice From List | ${L5} | 2 | 4  | # L5[2:4]    |
| ${y} = | Get Slice From List | ${L5} | 1 |    | # L5[1:None] |
| ${z} = | Get Slice From List | ${L5} |   | -2 | # L5[0:-2]   |
| ${x} = [\'c\', \'d\']
| ${y} = [\'b\', \'c\', \'d\', \'e\']
| ${z} = [\'a\', \'b\', \'c\']
| ${L5} is not changed'

def get_slice_from_list(self, list_, start=0, end=None):

    start = self._index_to_int(start, True)
    if (end is not None):
        end = self._index_to_int(end)
    return list_[start:end]
