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

Python3从用户好友关系列表构建网络出现TypeError报错如何解决

问题原因分析
  • 直接报错原因:循环变量使用错误。for j in network遍历得到的j是network的元素(如['0','1']这类列表),不是下标索引,因此network[j]会触发类型错误。同理for k in secondary得到的k是子列表对象,不能作为secondary[k]的索引值使用。
  • 隐藏逻辑错误:列表初始化方式存在浅拷贝问题。secondary = [[]] * (len(lines)//2) 会生成多个指向同一个空列表的引用,后续往任意子列表添加元素时所有子列表都会同步更新,完全不符合预期。
  • 设计缺陷:用户ID不一定是连续的(比如示例中的ID 8),用列表按索引存储会浪费空间且处理逻辑复杂,用字典映射用户ID到好友列表更适配需求。
正确实现代码
friend_map = {}

# 如果你的lines第一行是表头,可调整为 for line in lines[1:]
for line in lines:
    # 清理每行末尾的逗号、换行符,拆分两个用户ID并转成整数
    u1, u2 = map(int, line.strip().rstrip(',').split())
    # 双向添加好友关系
    if u1 not in friend_map:
        friend_map[u1] = []
    friend_map[u1].append(u2)
    if u2 not in friend_map:
        friend_map[u2] = []
    friend_map[u2].append(u1)

# 转换为按用户ID升序排列的元组列表,好友列表也同步做升序处理
result = sorted([(uid, sorted(friends)) for uid, friends in friend_map.items()])
print(result)
效果验证

示例输入运行后输出为:

[(0, [1]), (1, [0, 2, 8]), (2, [1, 3]), (3, [2]), (8, [1])]

完全匹配需求的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:36:03