想知道是否有人可以帮助我。我知道我可以使用.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]])
是的,我会在某些时候考虑使用元组。
答案 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]
再次......它看起来更自然......