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

Python中向现有列表追加元素创建嵌套列表及报错解决

问题分析与解决

报错原因

你遇到的AttributeError: 'str' object has no attribute 'append'是因为address_list中的元素是字符串类型(比如初始添加的address是字符串),而字符串没有append方法,无法直接向其添加元素。要实现你需要的嵌套结构,必须将address_list的每个元素设计为包含原地址和对应子列表的列表,格式为[原地址字符串, [关联子元素列表]]。

修改后的完整代码

address_list = []
temp_list = []
G = nx.Graph()
# 初始化:将地址包装为[原地址, 空的子列表]结构
address_list.append([address, []])

# 添加根节点(取列表中的第一个元素,即原地址字符串)
G.add_node(address_list[0][0])

for i in range(len(address_list)):
    # 打印原地址,取列表的第一个元素
    print(address_list[i][0])
    
    if i == target:
        tracePath(address, address_list[i][0])
    
    # 传入原地址进行查询,取列表的第一个元素
    txQuery(address_list[i][0])
    parser()

    # 读取文件到temp_list
    file_path_simple = r'Z:\[path_redacted]\tx_list_simple.txt'
    with open(file_path_simple, 'r') as fp:
        for ln in fp:
            ln = ln.strip('\n')
            temp_list.append(ln)
    # with语句会自动关闭文件,不需要手动fp.close()

    # 将temp_list的内容赋值给当前元素的子列表(注意拷贝,避免后续clear影响)
    address_list[i][1] = temp_list.copy()

    # 创建子节点与边,遍历当前元素的子列表(address_list[i][1])
    # 注意:这里不要用i作为循环变量,会覆盖外层的i,改用addr
    for addr in address_list[i][1]:
        G.add_node(addr)
        G.add_edge(address_list[i][0], addr)
        # 新添加的地址也要包装为[地址, 空子列表]的结构
        address_list.append([addr, []])
    
    temp_list.clear()

关键修改点

  • 初始化结构:将address_list.append(address)改为address_list.append([address, []]),让每个元素都是[原地址, 子列表]的嵌套结构。
  • 访问原地址:所有需要使用原地址的地方(如txQuery、print、add_node),都要从列表中取出第一个元素,即address_list[i][0]。
  • 赋值子列表:直接将temp_list的内容拷贝到当前元素的子列表address_list[i][1],不需要手动循环append,使用copy()避免后续temp_list.clear()影响已存储的子列表。
  • 避免变量冲突:内层循环变量不要用i,改用addr,防止覆盖外层循环的索引变量。
  • 自动关闭文件:with语句会自动处理文件关闭,不需要手动调用fp.close()。

最终结构说明

修改后address_list的结构会符合你的需求:

address_list[0] = [原根地址, [1,2,3]]
address_list[1] = [地址1, [1,5,6,7,8,35]]
address_list[2] = [地址2, [3,543,34,84,3,8,53]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:27:45