Python 2D列出了将数据附加到位置

时间:2016-04-29 12:51:45

标签: python

想知道是否有人可以帮助我。我知道我可以使用.append将数据附加到一维列表。我弄清楚的是如何将数据附加到2D列表并让Python将数据放在正确的列表中。

我需要创建一个运行x次的程序(每个名称有2对值),并在每次将用户输入附加到列表后。所以最后,我需要这样的东西:

DirectoryEntry ldapConnection = new DirectoryEntry("LDAPS://*******.com:636", "User@bloom.local", "Password");

ldapConnection.AuthenticationType = AuthenticationTypes.SecureSocketsLayer;

DirectorySearcher search = new DirectorySearcher(ldapConnection);

var result = search.Filter = "(objectClass=*)";
search.FindAll();

等...。

如何告诉Python哪个列表和位置放置名称和值? 这是我到目前为止的代码。

[[Name] [1,2] [3,4]]

[[Name] [4,5] [6,7]]

确定 - 所以我修改了代码并添加了一行来追加数据,在带有计数器+1的行之后。

def main():
    how_many = int(raw_input("How many to enter? "))
    counter = 0
    list = [ [], [] ]

    while counter < how_many:
        name = raw_input("Enter the Name ")
        first_val = int(raw_input("Enter first_val "))
        first_val2 = int(raw_input("Enter first_val2  "))
        sec_val = int(raw_input("Enter sec_val "))
        sec_val2 = int(raw_input("Enter sec_val2 "))
        counter = counter + 1
main()

我现在要做的是打印列表(通过行和列),但我得到一个IndexError。当我尝试输入/打印超过4个值时会发生这种情况。错误似乎在最后一行。有没有办法可以修改代码来停止这个并打印出用户要求的数量的值?

list.append([[name],[first_val,first_val2], [sec_val,sec_val2]])

是的,我会在某些时候考虑使用元组。

2 个答案:

答案 0 :(得分:2)

def main():
    how_many = int(raw_input("How many to enter? "))
    counter = 0
    list = []

    while counter < how_many:
        name = raw_input("Enter the Name ")
        first_val = int(raw_input("Enter first_val "))
        first_val2 = int(raw_input("Enter first_val2  "))
        sec_val = int(raw_input("Enter sec_val "))
        sec_val2 = int(raw_input("Enter sec_val2 "))
        list.append([[name], [first_val, first_val2], [sec_val, sec_val2]])
        counter = counter + 1

答案 1 :(得分:0)

假设我们正在从stdin中读取值(如问题正文中那样)

你可以使用列表:

list = []
....
list.append([[name], [first_val, first_val2], [sec_val, sec_val2]])

但是元组似乎更适合这里:

t = (name, (first_val, first_val2), (sec_val, sec_val2))
list.append(t)

由于值不太可能改变,因此元组感觉是更好的选择。

考虑在每种情况下如何访问字段:

list:
name = list[i][0][0]
tuple:
name = list[i][0]

再次......它看起来更自然......