code: def lpush(self, key, *values):
          
          return self._execute([b'LPUSH', key] + list(values))
docs: Insert all the specified values at the head of the list stored at key.
  
          :param key: The list's key
          :type key: :class:`str`, :class:`bytes`
          :param values: One or more positional arguments to insert at the
              beginning of the list.  Each value is inserted at the beginning
              of the list individually (see discussion below).
          :returns: the length of the list after push operations
          :rtype: int
          :raises: :exc:`~tredis.exceptions.TRedisException`
  
          If `key` does not exist, it is created as empty list before
          performing the push operations. When key holds a value that is not a
          list, an error is returned.
  
          It is possible to push multiple elements using a single command call
          just specifying multiple arguments at the end of the command.
          Elements are inserted one after the other to the head of the list,
          from the leftmost element to the rightmost element. So for instance
          ``client.lpush('mylist', 'a', 'b', 'c')`` will result into a list
          containing ``c`` as first element, ``b`` as second element and ``a``
          as third element.
  
          .. note::
  
             **Time complexity**: ``O(1)``