You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python基于多维列表构建用户-POI ID字典时出现'list' object has no attribute 'strip'错误的解决咨询

解决List对象无strip属性错误并构建目标字典

这个报错的原因很明确:你的train_list里的每一项是列表类型(比如[0, 1, 28]),而不是字符串,所以根本不能调用strip()和split()方法——这就是"'list' object has no attribute 'strip'"错误的来源。

你已经通过DataFrame把数据转换成了结构化的列表,不需要再做字符串拆分操作,直接从列表里解包元素就行。另外注意你代码里还存在一个小问题:定义的变量是trainset,但后面用了ground_truth,这也会导致未定义的错误,一起修正掉。

正确的实现代码

from collections import defaultdict

trainset = defaultdict(set)  # 创建键对应集合的默认字典
for eachline in train_list:
    uid, lid, _ = eachline  # 直接解包列表中的三个元素,忽略第三个checkinnumber
    trainset[uid].add(lid)

不用defaultdict的替代写法

如果你不想依赖collections.defaultdict,也可以用普通字典手动处理不存在的键:

trainset = {}
for eachline in train_list:
    uid, lid, _ = eachline
    # 如果当前用户id不在字典中,先初始化一个空集合
    if uid not in trainset:
        trainset[uid] = set()
    trainset[uid].add(lid)

运行之后,trainset就会变成你想要的结构:{0: {1,2,6,7}, 1: {130,131,132,134}, 2: {441,202,98,99}, ...}。

内容的提问来源于stack exchange,提问作者drorhun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 04:47:40