A perfect hash function will result in O(1)$\cal{O}(1)$ worst case lookup.
Moreover, if the maximum number of collisions possible is O(1)$\cal{O}(1)$, then hash table lookup can be said to be O(1)$\cal{O}(1)$ in the worst case. If the expected number of collisions is O(1)$\cal{O}(1)$, then the hash table lookup can be said to be O(1)$\cal{O}(1)$ in the average case.