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

问题描述

我正在尝试使用 python 理解去除空格:

function defineAbility(req,res,next) {
  if (req.session.rules) {
    req.ability = new Ability(req.session.rules);
    next();
  } else {
    // handle case when there is no rules in session yet
  }
}

// later

app.get('/api/users',defineAbility,(req,res) => {
  req.ability.can(...);
  // or
  ForbiddenError.from(req.ability).throwUnlessCan(...);
})

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

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)}")

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

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

为什么没有去除空白?

解决方法

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

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]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...