【问题标题】:Replace function in list of strings替换字符串列表中的函数
【发布时间】:2019-02-16 12:34:28
【问题描述】:

我想遍历一个字符串列表并用一个单词替换一个字符的每个实例(例如“1”)。我很困惑为什么这不起作用。

for x in list_of_strings:
    x.replace('1', 'Ace')

附注,列表中的字符串有多个字符长。 ('黑桃1)

【问题讨论】:

    标签: python string python-3.x list list-comprehension


    【解决方案1】:

    您可以使用列表推导:

    list_of_strings = [x.replace('1', 'Ace') for x in list_of_strings]
    

    这在 Python 中很自然。直接更改原始列表没有明显的好处;两种方法都有 O(n) 时间复杂度。

    您的代码不起作用的原因是str.replace 无法正常工作。它返回一个副本,如mentioned in the docs。您可以遍历 range 对象来修改您的列表:

    for i in range(len(list_of_strings)):
        list_of_strings[i] = list_of_strings[i].replace('1', 'Ace')
    

    或者使用enumerate:

    for idx, value in enumerate(list_of_strings):
        list_of_strings[idx] = value.replace('1', 'Ace')
    

    【讨论】:

    • 在我看来,就地版本使用enumerate 会更好看。
    猜你喜欢
    • 2021-05-22
    • 1970-01-01
    • 2012-11-26
    • 2013-05-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2013-11-15
    相关资源
    最近更新 更多