为什么我不能用这种 Python 理解去除空格?

Why can't I strip whitespace with this Python comprehension?

我正在尝试通过 python 理解去除空格:

instance_id_list = input("Enter instance IDs separated by commas: ")
instance_ids = instance_id_list.split(",")
[instance_id.strip(' ') for instance_id in instance_ids]
print(f"Instance IDs: {(instance_ids)}")

我正在输入一个实例 ID 列表,列表中有空格,如下所示:

i-0b956a2987c686dbd, i-0f6b1e1cdcabd2594, i-0307f123c3c9e6695, i-0425545775a09443d, i-00e48354b77e70484

但是当我打印出结果时,列表中的空格仍然存在:

Instance IDs: ['i-0b956a2987c686dbd', ' i-0f6b1e1cdcabd2594', ' i-0307f123c3c9e6695', ' i-0425545775a09443d', ' i-00e48354b77e70484']

为什么不去除空格?

[instance_id.strip(' ') for instance_id in instance_ids] 行没有任何影响。 strip() returns 一个剥离的字符串,它不能用剥离的版本自动替换字符串,因为字符串是不可变的。如果你想要一个剥离的 instance_ids 的列表,你实际上必须将列表理解的结果分配给一些东西:

stripped_instance_ids = [instance_id.strip(' ') for instance_id in instance_ids]
print(f"Instance IDs: {(stripped_instance_ids)}")

您忘记将结果赋值回变量:

instance_ids = [instance_id.strip(' ') for instance_id in instance_ids]