【问题标题】:How to iterate over the letters in a string ignoring blank spaces?如何遍历忽略空格的字符串中的字母?
【发布时间】:2020-05-23 09:29:02
【问题描述】:

我一直在寻找这个问题,但找不到对我有帮助的答案。

for i in range(len(string)):
    list.append(string)
return list

如果例如字符串包含空格,它显然会做额外的字符串

例如string = ' Hello '

输出是

[' Hello ', ' Hello ', ' Hello ', ' Hello ', ' Hello ', ' Hello ', ' Hello ']

代替

[' Hello ',' Hello ',' Hello ',' Hello ',' Hello ']

如果字符串是' Test String ',中间的空格也应该被忽略,给出一个长度为10的列表。

【问题讨论】:

  • 对于空格添加测试条件for i in string if i.strip() list.append(string) 或剥离字符串,这将删除前导和尾随空格for i in range(string.strip())
  • 我是Python 的新手,但如果你更改for i in range(len(string)): > for i in string.replace(" ",""):

标签: python string list for-loop iteration


【解决方案1】:

做简单的事

lis = [string for c in string if c != ' ']

会输出

[' Test String ',
 ' Test String ',
 ' Test String ',
 ' Test String ',
 ' Test String ',
 ' Test String ',
 ' Test String ',
 ' Test String ',
 ' Test String ',
 ' Test String ']

【讨论】:

    【解决方案2】:

    要忽略空格,您可以使用以下代码。请注意,我已将变量名从list 更改为lst,因为使用list 会影响python 内置函数。我们不是迭代字符串长度的索引,而是迭代字符串中的字母。

    string = ' Test String '
    lst = []
    
    for letter in string:
        if letter != ' ':
            lst.append(string)
    
    print(lst)
    

    输出:

    [' Test String ', ' Test String ', ' Test String ', ' Test String ', ' Test String ', ' Test String ', ' Test String ', ' Test String ', ' Test String ', ' Test String ']
    >>> len(lst)
    10
    

    或者,作为列表理解:

    >>> [string for c in string if c.strip()]
    [' Test String ',
     ' Test String ',
     ' Test String ',
     ' Test String ',
     ' Test String ',
     ' Test String ',
     ' Test String ',
     ' Test String ',
     ' Test String ',
     ' Test String ']
    

    这通过遍历字符串中的字母并检查每个去掉空格的字符是否为空字符串来工作。

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 2015-12-17
      • 2014-02-22
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2013-11-19
      相关资源
      最近更新 更多