用列表-python中的每个项目用短划线替换空格

alv*_*vas 2 python whitespace replace

有没有办法简化这个循环,我用列表中的每个项目用短划线替换空白?

for item in a_list:
    alist[alist.index(item)] = '-'.join(item.split(" "))
Run Code Online (Sandbox Code Playgroud)

还是这样更好?

for item in a_list:
    alist[alist.index(item)] = item.replace(" ", "-")
Run Code Online (Sandbox Code Playgroud)

注意:上述解决方案仅更新此列表中的第一个匹配项,正如David建议的那样,使用list comprehension来执行上述任务.

我有一个单词列表,有些有破折号,有些则没有.a_list中的项目如下所示:

this-item has a-dash
this has dashes
this should-have-more dashes
this foo
doesnt bar
foo
bar
Run Code Online (Sandbox Code Playgroud)

输出应该如下所示,其中列表中的所有项应该使用破折号而不是空格:

this-item-has-a-dash
this-has-dashes
this-should-have-more-dashes
this-foo
doesnt-bar
foo
bar
Run Code Online (Sandbox Code Playgroud)

Dav*_*son 5

使用列表理解:

a_list = [e.replace(" ", "-") for e in a_list]
Run Code Online (Sandbox Code Playgroud)