【问题标题】:Avoid spaces and count the characters (using sum() function)避免空格并计算字符数(使用 sum() 函数)
【发布时间】:2021-06-10 14:15:19
【问题描述】:
# Python3 code to demonstrate working of 
# Avoid Spaces in Characters Frequency
# Using isspace() + sum()
  
# initializing string
test_str = 'geeksforgeeks 33 is   best'
  
# printing original string
print("The original string is : " + str(test_str))
  
# isspace() checks for space 
# sum checks count 
res = sum(not chr.isspace() for chr in test_str)
      
# printing result 
print("The Characters Frequency avoiding spaces : " + str(res)) 

我在 geeksforgeeks 中找到了这段代码,但我无法理解它,在使用 sum() 的行中,他们正在使用列表理解,所以我们必须使用方括号 ([ ]),但他们没有使用它,并且[not chr.isspace() for chr in test_str] 行返回一个 true 和 false 列表,但是输出如何给出正确的字符串长度值而不包含空格

【问题讨论】:

  • 你不需要在字符串周围加上str(…),它没用。
  • 这是generator expression,不是列表理解

标签: python string sum


【解决方案1】:

好的,这条线有一些技巧。

首先,在python中,输入

>>>True == 1
True
>>>False == 0
True
>>> True + True 
2
>>> True + False
1

这就是求和有效的原因:布尔值被解释为整数。因此,总和是生成器中True 的值的数量。

其次,不带方括号的列表推导是generator expression

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2018-02-17
    • 2021-02-02
    相关资源
    最近更新 更多