Yooyi_xin 2021-07-20 21:24 采纳率: 33.3%
浏览 44
已采纳

python3为什么print的内容与存入的内容不同?

stock_list = [
['股票代码', '股票名称', '当前价', '涨跌额', '涨跌幅', '年初至今', '成交量', '成交额', '换手率', '市盈率(TTM)', '股息率', '市值'], 
['SH601778', 'N晶科', '6.29', '+1.92', '+43.94%', '+43.94%', '259.66万', '1625.52万', '0.44%', '22.32', '-', '173.95亿'],
['SH688566', '吉贝尔', '52.66', '+6.96', '+15.23%', '+122.29%', '1626.58万', '8.09亿', '42.29%', '89.34', '-', '98.44亿']
]

single_stock_dic = {} #单一股票信息,格式为{'股票代码':'SH603313',……}
new_stock_list = []
#   将每一条股票信息存入相应的stock_dic[股票代码]中

for i in range(1, len(stock_list)):
    for j in range(len(stock_list[0])):
        single_stock_dic[stock_list[0][j]] = stock_list[i][j]
    print(single_stock_dic)
    new_stock_list.append(single_stock_dic)
print(new_stock_list)

运行代码之后,print(single_stock_dic)print(new_stock_list)输入的内容并不一致,这是什么原因呢?我通过debug发现是两层循环的问题,但是并不清楚具体为什么会是这样

  • 写回答

2条回答 默认 最新

  • 关注

    应该把 single_stock_dic = {} 放到外循环内,让每次循环都创建一个新的字典。

    stock_list = [
    ['股票代码', '股票名称', '当前价', '涨跌额', '涨跌幅', '年初至今', '成交量', '成交额', '换手率', '市盈率(TTM)', '股息率', '市值'],
    ['SH601778', 'N晶科', '6.29', '+1.92', '+43.94%', '+43.94%', '259.66万', '1625.52万', '0.44%', '22.32', '-', '173.95亿'],
    ['SH688566', '吉贝尔', '52.66', '+6.96', '+15.23%', '+122.29%', '1626.58万', '8.09亿', '42.29%', '89.34', '-', '98.44亿']
    ]
    new_stock_list = []
    #   将每一条股票信息存入相应的stock_dic[股票代码]中
    for i in range(1, len(stock_list)):
        single_stock_dic = {} #单一股票信息,格式为{'股票代码':'SH603313',……}
        for j in range(len(stock_list[0])):
            single_stock_dic[stock_list[0][j]] = stock_list[i][j]
        print(single_stock_dic)
        new_stock_list.append(single_stock_dic)
    print(new_stock_list)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月20日
  • 创建了问题 7月20日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵