Python中的列表和列

时间:2015-11-30 15:45:18

标签: python python-3.x

我想从用户那里获取数字输入并将它们添加到二维列表中,然后将第三列添加到一起。

Sample Run:

Enter 3 numbers: 1 2 9
Enter 3 numbers: 3 4 9
Enter 3 numbers: 9 1 1
Enter 3 numbers:


1 2 9
3 4 9
9 1 1

column 3 total = 19

这是我到目前为止所拥有的

def main():
  string = input("Enter 3 numbers: ")
  lst = string.split()
  lst = [int(a) for a in lst]
  while string != '':
    string = input("Enter 3 numbers: ")
    lst2 = string.split()
    lst.append([int(a) for a in lst2])
  print(lst)
main()

如何在示例中显示我的数字,并且只添加第三列

1 个答案:

答案 0 :(得分:3)

你继续覆盖lst。但是有一个更大的问题。您需要一个外部列表来保存用户输入列表。

def main():
    array = []
    string = input("Enter 3 numbers: ")
    lst = string.split()
    lst = [int(a) for a in lst]
    array.append(lst)
    while string != '':
        string = input("Enter 3 numbers: ")
        lst = string.split()
        array.append([int(a) for a in lst])
    print(array)
main()

如果将提示合并到单个while循环中,您的代码会更清晰

def main():
    lst = []
    while True:
        data = input("Enter 3 numbers: ")
        if not data:
            break
        lst.append([int(a) for a in data.split()])
    print lst
    # to get more output....
    for row in lst:
        print('{} {} {}'.format(*row))
    print('column 3 sum is {}'.format(sum(row[2] for row in lst)))
main()

第二个例子的示例运行

$ python3 x.py
Enter 3 numbers: 1 2 3
Enter 3 numbers: 4 5 6
Enter 3 numbers: 7 8 9
Enter 3 numbers: 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]