new_list = [sublist for sublist in data_list if sublist[-1][:4] == '4301']报错TypeError: 'datetime.date' object is not subscriptable
时间: 2024-09-25 15:19:57 浏览: 39
Sublist3r-master.zip_master_sublist_sublist3r_zip
看起来你在尝试从一个包含 `datetime.date` 对象的数据列表 (`data_list`) 中提取符合条件的部分,但是 `datetime.date` 类型的对象并没有 `[]`(索引操作符)方法,所以当你试图通过 `sublist[-1][:4]` 访问其部分值时,会触发 `TypeError`。
如果你确信 `data_list` 的最后一列应该是字符串并且存储的是日期数据,你应该先将其转换成字符串形式再进行索引和比较。你可以使用 `str()` 函数来做这个转换。下面是修改后的代码示例:
```python
new_list = [sublist[:-1] + [str(sublist[-1])] for sublist in data_list if str(sublist[-1])[:4] == '4301']
```
这里我们只保留了日期的一部分并将其转换为了字符串,然后再进行匹配。如果 `sublist[-1]` 是 `date` 对象,并希望按字符串形式处理,那么这样做是合适的。
如果 `data_list` 的最后一列不是日期,而是其他类型的不可索引对象,你需要根据实际情况调整转换或过滤的方式。
阅读全文