以特定ch开头的字符串计数

2024-10-17 00:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从下面的列表中找到以字母V开头的国家的计数:

 ['USA', '249', '158', '84', '8.7'],
 ['Uruguay', '115', '35', '220', '6.6'],
 ['Uzbekistan', '25', '101', '8', '2.4'],
 ['Vanuatu', '21', '18', '11', '0.9'],
 ['Venezuela', '333', '100', '3', '7.7'],
 ['Vietnam', '111', '2', '1', '2.0'],
 ['Yemen', '6', '0', '0', '0.1'],
 ['Zambia', '32', '19', '4', '2.5'],
 ['Zimbabwe', '64', '18', '4', '4.7']

代码:

^{pr2}$

不幸的是,count总是返回零。有人能帮忙吗?在


Tags: 代码列表字母国家计数usavenezuelavietnam
3条回答
if '/V+' in item[0]:

Python不使用斜杠来表示regex,in执行精确的搜索。导入并使用re或使用str.startswith(),如其他答案所示。在

尝试使用startswith

def countCountry(csv1):
    count = 0
    for item in csv1:
        if item[0].startswith('V'):
            count +=1
    return count

print countCountry(a)

或者:

^{pr2}$

为什么代码不能按预期工作

您编写的代码总是返回一个0的计数,因为第4行的计算结果从未为真。第4行总是错误的,因为它检查'/V+'是否与它所显示的一样,是in国家的名称,但永远不会是这样。此外,如果一个国家的名字像'Japmeri/V+na'这样古怪,你会收到一个假阳性

1. def countCountry(csv1):
2.    count = 0
3.    for item in csv1:
4.        if '/V+' in item[0]:
5.            count +=1
6.    return count

修复

下面是如何使代码变得更好,我将比前面的答案更进一步,使其更具可读性和健壮性。在

^{pr2}$

我希望这能回答你的问题。编码快乐!在

相关问题 更多 >