打酱油. 2021-12-07 23:47 采纳率: 0%
浏览 19

怎末将列表格式的字符串转变为列表

 ###### 问题遇到的现象和发生背景
我用python在写学生通讯录系统,功能就是1.添加2.删除3.修改4.查询5.获取所有学生通讯信息6.退出系统。然后单次运行的话 所有功能都能实现了已经。但是一旦第二次运行数据就需要重新添加,想建立txt存储数据。
 ###### 问题相关代码,请勿粘贴截图

def addstudent():
    file = open('stu.txt','w')               #存储数据到文件夹中
    name = input("输入要添加的姓名:")
    for i in ls :
        if i !={}:
            if i ['姓名']==name:
                print("存在此人")
                break
    else:
        sex = input("性别:")
        telephone = input("电话号码:")
        dt = {"姓名": name, "性别": sex, "电话": telephone}
        ls.append(dt)

    # dt1[name]= {"姓名": name, "性别": sex, "电话": telephone}
        print("添加成功,内容为:姓名:{},性别:{},电话:{}".format(name,sex,telephone))
       #互换键和值
        print(dt)
        print(dt1)
        print(ls)
    file.write(str(ls))
    file.close()
a=[]
def delstudent():
    file = open('stu.txt', 'r+')
    for line in file:
        a.append(line)
        print(a)
        print(type(a))

    name1 = input("输入删除者的姓名")
    for i in a:
        print(i)

        for j in i:                                                     #本来以为输出只要“长相”和存储进去时的一样就能照常用,结果类型完全不一样
            print(j)
            if j!={}:
                if j['姓名']==name1:
                    print("删除成功\n删除的内容为:姓名:{},性别:{},电话:{}".format(i['姓名'], i['性别'], i['电话']))
                    j.clear()
                    file.write(str(i))
                    print(a)
                    file.close()
                    break
        else:
                print("查无此人\n请重新选择操作")


 ###### 运行结果及报错内容
string indices must be integers
字符串索引必须是整数,转换的结果还是字符串
 ###### 我的解答思路和尝试过的方法
于是我用1.添加时用open('stu.txt','w'),添加的内容必须将列表(我用的时列表里字符串的方式存储)转换为字符串。但是2.删除时,我想从stu.txt读出文件时,读出的成为字符串就没法再用遍历列表的方法。我也成功将stu里的文件用列表格式输出,但是原先的列表内容在新列表输出时还是字符串。就没办法去遍历他找到相对应的同学信息
 ###### 我想要达到的结果
存储同学的信息,姓名,性别,电话。实现这个程序。
-

  • 写回答

2条回答 默认 最新

  • bekote 2021-12-07 23:50
    关注

    用eval转换list=eval(str)

    评论

报告相同问题?

问题事件

  • 创建了问题 12月7日

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆