python的这一个语句是什么结构啊

我在浏览别人内容的时候看见一个语句是这样的:

def str_to_hex(s):
    return ' '.join([hex(ord(c)).replace('0x', '') for c in s])

虽然我明白这个语句的意思,但是我不明白为什么可以这样写....把for写在里面。请问这是什么样的语句结构?

建议你了解一下列表推导式,你就会豁然开朗了