【问题标题】:Python- Calculate Average Number Using Two Lists [duplicate]Python-使用两个列表计算平均数[重复]
【发布时间】:2021-02-27 11:29:39
【问题描述】:

我正在尝试通过将单词数除以句号数来计算 .txt 文件中句子的平均长度:-

def divide(x, y):
    return x / y

file = open("File One.txt", "r")
data = file.read()

words = data.split()
print('Number of words in text file:', len(words))

count = data.count('.')
print("Number of full stops:", count)

num1 = words
num2 = count

print("Average sentence length:", divide(num1, num2))

但我最终得到:-

Number of words in text file: 25
Number of full stops: 3
Traceback (most recent call last):
  File "C:\Users\Jonathan\Desktop\Data\stripped down.py", line 16, in <module>
    print("Average sentence length:", divide(num1, num2))
  File "C:\Users\Jonathan\Desktop\Data\stripped down.py", line 2, in divide
    return x / y
TypeError: unsupported operand type(s) for /: 'list' and 'int'

任何帮助或建议将不胜感激。

【问题讨论】:

  • 您的num1 被定义为单词列表本身,而不是其长度。这个问题基本上是笔误。另外,divide 的意义何在?定义一个函数而不是仅仅使用操作符需要更多的输入,这只会降低代码的可读性。

标签: python list integer


【解决方案1】:

您直接传递列表num1,但您需要将其长度分配给num1

def divide(x, y):
    return x / y


file = open("File One.txt", "r")
data = file.read()

words = data.split()
print('Number of words in text file:', len(words))

count = data.count('.')
print("Number of full stops:", count)

num1 = len(words)
num2 = count

print("Average sentence length:", divide(num1, num2))

样本输出:

Number of words in text file: 9
Number of full stops: 12
Average sentence length: 0.75

【讨论】:

    【解决方案2】:

    print("Average sentence length:", divide(num1, num2)) 调用 def divide(x, y)。 num1 是一个列表,如下所示:

    data = file.read()
    words = data.split()
    

    例如,如果您的字符串是 data = "abc def ghi jkl"data.split() 将返回一个列表 (['abc', 'def', 'ghi', 'jkl'])。

    在您的具体示例中,您可以使用 len() 访问所述列表的长度 - 因此您将拥有一个 int,它最终是可分割的,所以:

    #[...]
    num1 = len(words)
    num2 = count
    
    print("Average sentence length:", divide(num1, num2))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-22
      • 2020-09-14
      • 2021-03-18
      • 2021-06-03
      • 2020-03-03
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多