Python列表筛选问题:修复代码并识别错误类型
解决你的Python列表筛选问题
嘿,我来帮你搞定这两个问题!
1. 修复后的代码
你的核心思路完全没问题——遍历原列表,筛选出第二个元素是小写字母的元组,但访问元组元素的语法用错啦。元组是序列类型,要通过**方括号[]**来访问对应索引的元素,而圆括号()是用来调用函数/方法的语法,不能用来取元组元素。另外别忘了导入string模块哦。
修复后的完整代码如下:
import string myList = [(0, 't'), (1, 'r'), (2, '_')] newList = [] for thing in myList: # 把 thing(1) 改成 thing[1] if thing[1] in string.ascii_lowercase: newList.append(thing) print(newList) # 输出: [(0, 't'), (1, 'r')]
如果你想更简洁,也可以用列表推导式实现:
import string myList = [(0, 't'), (1, 'r'), (2, '_')] newList = [thing for thing in myList if thing[1] in string.ascii_lowercase]
2. 错误的名称
你遇到的这个错误叫做TypeError(类型错误)。
原因很直白:Python里的元组是不可调用的对象,你写thing(1)的时候,相当于让Python把这个元组当作函数来调用、传入参数1,但元组根本不是函数/可调用类型,所以Python会抛出TypeError: 'tuple' object is not callable的提示。
内容的提问来源于stack exchange,提问作者trang nguyen
相关产品推荐
相关产品推荐

