python - 计算包含某些字母的单词
问题描述
任务是编写一个带有名称的函数,该函数count_letter
接受单词列表和某个字母,并返回至少找到一次该字母的单词数量。而且,我们必须使用for
循环。所以我列出了一些编程语言和字母“a”,并尝试应用我们迄今为止学到的所有内容以及一些互联网教程来了解如何将人类逻辑转换为代码行,但显然我遗漏了一些东西,因为它没有'不起作用:(这就是我的代码目前的样子:
mylist = ['fortran', 'basic', 'java', 'python', 'c++']
letter = 'a'
a_list = []
def count_letter(mylist):
count = 0
for i in range(len(mylist)):
if letter in i:
count += 1
a_list.append(i)
return a_list
print(len(a_list))
结果是——没有结果。Online-python 编译器返回响应 ** 进程退出 - 返回代码:0 ** 我的问题是 - 我可能会错过什么或错误地定位循环不起作用。我想自己理解。在教程中,我发现了一种返回正确答案的结构(看起来非常优雅和紧凑),但它没有任何功能,所以它不是我们真正需要编写的:
mylist = ['fortran', 'basic', 'java', 'python', 'c++']
letter = 'a'
res = len ([ele for ele in mylist if letter in ele])
print ('Amount of words containing a: ' +str(res))
这里系统响应:3
,正如预期的那样。
请告诉我应该在代码 #1 中检查什么。
解决方案
我在你的代码中发现了几个错误:
当你在 range(len(mylist)) 中执行 for i 时,你实际上是在循环遍历数字 1,2,... 而不是 mylist 的元素。所以你必须使用“for i in mylist”来循环遍历数组 mylist 的元素。
从函数返回时,不会执行返回之后的代码。所以你必须先打印它,然后从函数中返回。
不要忘记调用该函数。否则该函数将不会被执行。
不需要计数变量,因为您可以使用 len 方法访问长度。
mylist = ['fortran', 'basic', 'java', 'python', 'c++']
letter = 'a'
a_list = []
def count_letter(mylist):
for i in mylist:
if letter in i:
a_list.append(i)
print(len(a_list))
return a_list
print(count_letter(mylist))
旅途中一切顺利!
推荐阅读
- django - Django 中的自定义模板标签
- primeng - primeng 订单列表点击处理程序
- web - 如何选择特定行以将我抓取的数据放入 csv 文件中?
- atom-editor - 试图在原子中运行python
- javascript - TypeError:setTimeout 运行时无法读取未定义的属性(读取“样式”)
- python - Python:将 np 数组拟合到模型时出现“无法将字符串转换为浮点数”错误
- javascript - 未处理的拒绝(TypeError):函数不是函数
- python - 为什么我会在 pytest-qt 中收到这个“包装的 C/C++ 对象...已被删除”错误?
- c# - 当前上下文中不存在类剪贴板,但我在保留此类的位置添加了命名空间“System.Windows”
- java - 带有 Javax RS (WAR) PostConstruct 的 Spring Framework 不起作用