Python 在列表中插入新字符串,使其保存信息

Python 在列表中插入新字符串,使其保存信息,python,Python,我正在学习Python,我想知道如何将名称插入到列表中,并将其保存在该变量中,以便脚本能够识别以前是否见过您 任何帮助都将不胜感激 # Default People Already In List at program start list = ['Bob','Jim',] print("Hello, What\'s your name ?") Name = input("Enter your Name: ") if Name in list: print("Nice to meet y

我正在学习Python,我想知道如何将名称插入到列表中,并将其保存在该变量中,以便脚本能够识别以前是否见过您

任何帮助都将不胜感激

# Default People Already In List at program start
list = ['Bob','Jim',]
print("Hello, What\'s your name ?")
Name = input("Enter your Name: ")
if Name in list:
    print("Nice to meet you again" + Name)
else:
    list.insert(0, Name)
    print("Hi " + Name + ", Nice too meet you for the first time.")

# Troubleshoot
print(list)

你应该重命名你的变量-这里是你的代码的一个简短的修正,尽管它看起来已经很好了!我也将插入更改为附加

但它显然会忘记,因为列表总是用Bob和Jim初始化的,然后你要求输入名称-如果不是Bob或Jim,它是新的,因此被追加。但是程序结束了,所以当您重新启动它时,您的列表中只会再次填充Bob和Jim。你可以把整个结构放在一个“while True”结构中,多次提出同一个问题,直到你不想再提了

编辑:包括while(如果您只需按“回车”键,可以多次输入)对于问题!请将列表放在开头,这样它就不会在每次运行新名称时都被初始化!而且很重要:如果您第一次看到某人,请在else子句中包含打印内容,否则每次都会打印,即使您以前看到过该名称

name_list = ['Bob','Jim']
while True:

    print("Hello, What\'s your name? ")
    input_name = input("Enter your Name: ")
    if str(input_name) in name_list:
        print("Nice to meet you again, " + input_name)
    else:
        name_list.append(input_name)
        print("Hi " + input_name + ", Nice too meet you for the first time.")

    # Troubleshoot
    print(name_list)

    if str(input("Another name? ")) == '':
        continue
    else:
        break

这将把它存储到一个文件中,使用内置函数和实用程序作为变量名也不是一个好的做法

try:
    with open("listofnames.txt","r") as fd:
        lists=eval(fd.read())
except:
    lists=[['Bob','Jim',]]

print("Hello, What\'s your name ?")
Name = input("Enter your Name: ")
if Name in lists:
    print("Nice to meet you again", Name)
else:
    lists.insert(0, Name)
    with open("listofnames.txt","w") as f:
        f.write(str(lists))

    print("Hi " + Name + ", Nice too meet you for the first time.")

# Troubleshoot
print(lists)

这就是我所做的。这是一个CSV文件

# Load from file
list = []
listfile = open('list.csv', 'r+')
for name in listfile:
    list.append(name[:-1])

print("Hello, What\'s your name ?")
Name = input("Enter your Name: ")
if Name in list:
    print("Nice to meet you again " + Name)
else:
    print("Hi " + Name + ", Nice too meet you for the first time.")
    listfile.write(Name + "\n")  #adding to file

# Troubleshoot
print(list)

您的代码看起来应该可以工作。它有什么问题吗?将名称列表保存在另一个文件中,并在每次运行开始时加载它如何?这对您合适吗?嗨,Aran,是的,它确实可以工作。但是数据没有保存在列表中,并且在再次初始化命令时忘记了它。如上所述,将列表存储到磁盘(例如,查看pickle库).A nit:通常命名一个列表变量
list
不是一个好主意,因为你想保留这个关键字用于类型检查。这听起来像是个好主意Nuageux。你介意指导我还是让我指向一个LinkThank@Cut7er,这很好。我对Python非常着迷,希望我能尽快掌握它的窍门如果答案对你有用,你可以投票支持它!Inder的答案也是如此:-)谢谢@Tharaka,我一定会检查的out@MitchG请将最新编辑的答案复制粘贴,这是一个缩进问题,第一次打印hi来自elseThanks@Inder。现在工作起来就像哨子一样。感谢您的帮助support@MitchG当我们编写一个文件来完成这个简单的操作时,我们将它转换成了带有行
f.wr的字符串ite(str(lists))
,所以现在我们的列表被保存为一个字符串,类似于“
”['BOB','othernames']”“
,所以当我们加载这个文件时,它仍然是一个字符串,我们不能将它用作列表,为了从我们正在使用的字符串中获取列表,eval(),所以eval所做的是解释并执行其中的内容或者一个字符串,所以我们的字符串中有一个列表,它作为列表而不是字符串被计算并存储在变量中。