将数据输入到配对列表中

时间:2017-01-30 02:46:56

标签: python

以下是我目前正在使用的代码。我试图这样做,所以我可以在名称后添加第二个数据,因此它读取(name1,data1),(name2,data2),(name3,data3)。是否有允许我这样做的功能?

ListOfNames = []
while True:
    Name = input('Input Band Member')
    if Name != "":
        ListOfNames.append(Name)
    else:
        break

2 个答案:

答案 0 :(得分:1)

您不需要特殊功能,只需附加一个列表而不是字符串:

ListOfNames.append([Name, data])

或者,如果您在以后不知道数据是什么:

ListOfNames.append([Name])

然后:

ListOfNames[x].append(data)

其中x是您要附加到的任何列表的索引。

或者,如果您希望首先独立构建两个列表,可以使用zip()将它们合并。

zip(ListOfNames, data_list)

根据您的计划结构,这可能会或可能不会更合适。在不知道收集data_list的方式,时间或顺序的情况下,很难说。

答案 1 :(得分:1)

如果您愿意,可以将信息存储在两个单独的列表中,最后将它们与zip()一起压缩。

你可以尝试这样:

namel = []
bandl = []
while True:
    n = input("Enter Name: ")
    if n != '':
        d1 = input("Enter data1: ")
        namel.append(n)
        bandl.append(d1)
    else:
        break

print(list(zip(namel, bandl)))

演示输出:

Enter Name: Rupee
Enter data1: India
Enter Name: Dollar
Enter data1: USA
Enter Name: 
[('Rupee', 'India'), ('Dollar', 'USA')]

或者,如果您确保用户输入以逗号分隔的2个值,您可以这样尝试:

l = []
while True:
    n = input("Enter Name: ")
    if n!='':
        l.append(n.split(','))
    else:
        break

print(l)

演示运行:

Enter Name: Rupee, India
Enter Name: Dollar, USA
Enter Name: 
[['Rupee', ' India'], ['Dollar', ' USA']]