Python 3.x 计算字符串,得到一个空集,为什么?(python 3)

Python 3.x 计算字符串,得到一个空集,为什么?(python 3),python-3.x,string,csv,Python 3.x,String,Csv,早上好,我正在尝试计算csv文档中“是”和“否”出现在列中的次数。由于某种原因,我在最终输出中得到了一个空集。格式在最终文档中按指示生成,但计数和集合为空。代码如下: yes = 0 no = 0 with open('2021FASTSurveyResponses.csv', 'r') as fastout: yayornay = csv.reader(fastout) next(yayornay) for yesno in yayornay: yesn

早上好,我正在尝试计算csv文档中“是”和“否”出现在列中的次数。由于某种原因,我在最终输出中得到了一个空集。格式在最终文档中按指示生成,但计数和集合为空。代码如下:

yes = 0
no = 0
with open('2021FASTSurveyResponses.csv', 'r') as fastout:
    yayornay = csv.reader(fastout)
    next(yayornay)
    for yesno in yayornay:
        yesno = yesno[1]
        # pattern1 = re.compile(r"no")
        # pattern2 = re.compile(r"yes")
        # pattern1.split(',')
        # pattern2.split(',')
        # yesno.split(',')
        yesno.strip()
        print(yesno)


    for line in yesno:
        if line == 'yes':
            # yes.count('yes')
            yes.append()
            # yes = yes + 1
            # yes += 1

    for line in yesno:
        if line == 'no':
            # no.count('no')
            no.append()
            # no = no + 1
            # no += 1

    # datetime = str(datetime.datetime.now())
    # with open('yayornay.csv', 'w') as f:
    #     f.write('Yes(s) = {} /'.format(yes))
    #     f.write(' No(s) = {} '.format(no))
    #     f.write(datetime)
我认为解决办法很简单,但有些东西对我来说并不合适。我错过了什么?
提前谢谢

如果需要计数,请将是和否初始化为整数(0)而不是数组([])

替换

no = []
yes = []


yes+=1
应导致错误。假设不是,这意味着如果line=='no'和
如果line=='yes'
都不是真的。仔细检查
是什么<代码>打印(列表(行))将帮助显示隐藏字符。并且,不要使用注释掉的
+=
,而是使用注释掉的
append
行。查看注释掉的关于yes.append()和no.append()的行。我注释掉了“in life=”并取消注释掉了yes/no.append()-但这导致了相同的问题。。。接下来我将测试打印(列表(行)),注意我评论的前半部分。我评论的第二部分是,您曾经修复了第一个IssueEyp,现在看看它。谢谢您从
.readlines()
获得的行将以换行符结尾(可能最后一行除外)。因此,它们不可能等于
“yes”
“no”
。您应该对每一行应用
.strip()
,以去除换行符和任何其他无关的空白。这可能更接近他们想要的。正如我在一篇评论中提到的,他们应该在他们最初的方法中出现错误,而事实上,它们并不意味着代码永远不会执行,所以在修复之前,这不会改变任何事情。好吧,这太疯狂了:我尝试的任何东西似乎都无法让我计算“是”或“否”的存在。请参阅Jason Harper的评论。打印出“line”并查看为什么它永远不等于yes或no是的,我可以从打开文件并仅从csv中提取我想要的列中看出,每一行都包含为“yes”或“no”以及type=str。我不知道如何填充for循环来遍历这些值。这应该很简单。另外,如果我只运行print(yesno.count('yes')),我会看到1存在该字符串,然后在“yes”不存在时看到0。
no = 0
yes = 0