Merge Intervals from leetcode
Python2 / Python3

Your code don't working under python 3 (PEP 3113). If possible better use newer python :).

Algorithm


no needs to change Interval to list with two elements. It's bad practise. You try low-level optimizations, not algorithm one. Code is less readable.
local functions is_intersect and merge_interval don't use knowledge that we have sorted intervals, e.g. i1_l &lt;= i2_l
pattern while i &lt; len(my_list): better change to for element in my_list: because we don't need index


Reduced code

class Interval(object):
    def __init__(self, s=0, e=0):
        self.start = s
        self.end = e


class Solution(object):
    def merge(self, intervals_struct):
        if not intervals_struct:
            return []
        intervals = sorted(intervals_struct, key=lambda x: x.start)

        result = [intervals[0]]
        for cur in intervals:
            if cur.start &gt; result[-1].end:
                result.append(cur)
            elif result[-1].end &lt; cur.end:
                result[-1].end = cur.end
        return result