class Solution:
    def kLengthApart(self, nums: List[int], k: int) -> bool:
        res = []
        for idx,val in enumerate(nums):
            if val == 1:
                res.append(idx)
        if not res and k == 0:
            return True
        for each in range(1,len(res)):
            if (res[each]-res[each-1]-1) < k:
                return False
        return True          

optimised solution

class Solution:
    def kLengthApart(self, nums: List[int], k: int) -> bool:
        prev = -1
        for idx,val in enumerate(nums):
            if val == 1:
                if prev != -1 and idx-prev-1 < k :
                    return False
                prev = idx
        return True