作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让这段代码以某种方式运行。我正在尝试制作它,以便有一个包含单词和数字的文本文件。代码需要提取正数或负数,然后将它们加在一起。下面,我有一个示例,展示了文本文件中减去项目符号点的情况。我试图使用列表理解使其代码量最短(因为应该编写任何代码)。我仍然是一个新手编码器,因此非常感谢您的帮助。
<小时/>example of text and numbers in file
- Positive 36
- Negative: -12
- Negative: -11
- Positive: 42
- Positive: 95
- Negative: -4
<小时/>
这是代码的粗略尝试。我在尝试实现是否要获取正数还是负数时遇到了最大的麻烦(理论上):
sum([int(line.strip()) for line in open("text.txt").readlines()])
最佳答案
您可以仅根据数字确定数字的符号,因此分割每一行并捕获最后一部分:
with open('text.txt') as handle:
numbers = (int(line.split()[1]) for line in handle)
total = sum(n for n in numbers if n > 0)
无需在文件对象上调用 readlines
,因为迭代文件对象本身一次会为您提供所有行。此外,使用生成器表达式可以减少两个字符,并且对于较大的文本文件来说速度会更快,因为没有中间列表。
关于PYTHON(2.7) : List comprehension - Adding(sum) numbers in a . 带有附加文本的 txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24519550/
我是一名优秀的程序员,十分优秀!