OP_HASH160 pops the public key from stack after hashing it? This guide https://bitcoin.org/en/developer-guide#p2pkh-script-validation mentions
"The operation executed next, OP_HASH160, pushes onto the stack a hash of the data currently on top of it—in this case, Bob’s public key. This creates a hash of Bob’s public key."

Does the HASH160 operation pops the duplicated public key? If not, why keeping a duplication on the stack? what's the point?

Thanks.
OP_HASH160 pops an item from the stack (it can be a public key or any arbitrary array of bytes), hashes it and pushes the result to the stack