Python:我的代码创建了多个列表

时间:2018-06-18 18:20:01

标签: python database python-3.x

  

每次运行我的代码时,它总是在运行中创建多个列表   时间。我希望我写的所有用户名都放在一起   列表。

def Username_Lists():
        for i in range(5):
            name = input ('What is your name?: ')
            if name not in my_names:
                    my_names.append(name)
                    print (name)
                    print (my_names, file=p)

执行如下:

['Bob']
['Bob', 'Mandy']
['Bob', 'Mandy', 'Batman']
['Bob', 'Mandy', 'Batman', 'Superman']
['Bob', 'Mandy', 'Batman', 'Superman', 'Spider-Man']

有关如何解决此问题的任何建议?

3 个答案:

答案 0 :(得分:2)

您的print语句在for循环中。如果您只想在循环运行后打印一次,请减少缩进。

def Username_Lists():
    for i in range(5):
        name = input ('What is your name?: ')
        if name not in my_names:
                my_names.append(name)
    print (name)
    print (my_names, file=p)

答案 1 :(得分:0)

您的代码没有创建多个列表,您只需打印五次列表,就好像您创建了五个列表一样。

答案 2 :(得分:0)

你应该把你的版画带出循环,就像这里:

def Username_Lists():
    for i in range(5):
        name = input ('What is your name?: ')
        if name not in my_names:
                my_names.append(name)
    print (name)
    print (my_names, file=p)

并且,为避免重复,您还可以执行以下操作:

def Username_Lists():
    for i in range(5):
        name = input ('What is your name?: ')
        my_names.append(name)

    # remove repetitions
    my_names = list(set(my_names))
    print (name)
    print (my_names, file=p)