code: def list2bytecode(l, opc, varnames, consts):
      
      bc = []
      for i, opcodes in enumerate(l):
          opname = opcodes[0]
          operands = opcodes[1:]
          if opname not in opc.opname:
              raise TypeError(
                  "error at item %d [%s, %s], opcode not valid" %
                  (i, opname, operands))
          opcode = opc.opmap[opname]
          bc.append(opcode)
          print(opname, operands)
          gen = (j for j in operands if operands)
          for j in gen:
              k = (consts if opcode in opc.CONST_OPS else varnames).index(j)
              if k == -1:
                  raise TypeError(
                      "operand %s [%s, %s], not found in names" %
                      (i, opname, operands))
              else:
                  bc += num2code(k)
                  pass
              pass
          pass
      if opc.python_version < 3.0:
          return reduce(lambda a, b: a + chr(b), bc, '')
      else:
          if PYTHON3:
              return bytes(bc)
          else:
              return bytes(bytearray(bc))
docs: Convert list/tuple of list/tuples to bytecode
      _names_ contains a list of name objects