计算列表中包含0大于1的元素的数量

时间:2019-11-17 13:30:07

标签: python python-3.x list

我是python编程的新手,我的任务是告诉列表中有多少个二进制值,其中0的个数大于1。此任务的数据在文本文件中,我已经打开了文件,并将每一行文本放入列表中的分隔符值。

binary = list()
file = 'liczby.txt'
with open(file) as fin:
    for line in fin:
        binary.append(line)
print(*binary, sep = "\n")

现在我卡住了。

2 个答案:

答案 0 :(得分:1)

more_zeros = 0
file = 'liczby.txt'
with open(file) as fin:
    for line in fin:
        if line.count('0') > line.count('1'):
            more_zeros += 1
print(more_zeros)
Out[1]: 6 # based on the 17 lines you gave me in your comment above

答案 1 :(得分:0)

def count(fname):
    cnt = 0
    with open(fname, newline='') as f:
        for line in f:
            if line.count('0') > line.count('1'):
                cnt += 1
    return cnt

print(count('/tmp/g.data'))

阅读help(str),有许多有用的功能。

编辑:
如果您喜欢极简主义,可以使用;-)
包括 Nicolas Gervais len()技巧–太棒了。

def count(fname):
    with open(fname, newline='') as f:
        return sum(line.count('0') > len(line) // 2 for line in f)

EDIT2:误解的问题。我已更新为仅计数包含更多零的行。