【问题标题】:How to generalize a for loop for all alfanumerical characters如何概括所有字母数字字符的 for 循环
【发布时间】:2022-12-08 01:24:13
【问题描述】:

首先,我想说我完全知道您可以通过首先避免循环来简化整个工作,但这是一个较长的项目,所以让我们假设必须保留原始循环。

我创建了一个循环,将字符串转换为单词之间空白处的列表。

string= "This my string"
my_list = []
word = ""

for char in string:
    if char != " ":
        word += char
        if char is string[-1]:
            my_list.append(word)
    else:
        my_list.append(word)
        word = ""

因此输出是:

['This', 'is', 'my', 'string.']

现在我想给if char != " " 添加一个占位符,这样我以后可以输入任何字母数字字符来拆分字符串。因此,如果我将 i 输入到此占位符变量中,拆分将如下所示:

['Th', 's my str', 'ng.']

我尝试使用%s 这样做,但无法正常工作。

那么如何更改/添加到此循环以包含占位符?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    那是你要找的吗?

    string= "This my string"
    my_list = []
    word = ""
    character = " " # change for the char you want to split on
    
    for char in string:
        if char != character:
            word += char
            if char is string[-1]:
                my_list.append(word)
        else:
            my_list.append(word)
            word = ""
    

    在您的情况下使用 string.split(" ")string.split(character) 可能更简单。

    【讨论】:

    • 或者创建characters = " i"并检查if char not in characters,因为这仍然不能满足 op 的要求
    【解决方案2】:

    您不需要检查 char is string[-1] 是否只在循环结束后执行。另外 string 覆盖了内置的 string 名称。

    至于多重分隔,您可以使用 in 关键字和一个包含所有分隔符的字符串:

    my_string = "这是我的字符串" 我的列表 = [] 字=“” 字符=“我”

    for char in my_string:
        if char not in characters:
            word += char
        else:
            my_list.append(word)
            word = ""
    my_list.append(word)
    

    结果:

    ['Th', 's', 'my', 'str', 'ng']
    

    【讨论】:

      【解决方案3】:

      您可以使用 split() 函数来拆分字符串。 对于情况 I,您可以使用string.split(" ") 对于情况二,您可以使用string.split("i")

      或者您可以在 split() 中添加任何字符,例如:string.split(char)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-18
        • 1970-01-01
        • 2014-08-02
        • 1970-01-01
        • 2013-03-10
        • 1970-01-01
        • 1970-01-01
        • 2020-10-16
        相关资源
        最近更新 更多