如何将嵌套列表作为用户的输入?

时间:2017-06-17 07:30:04

标签: python python-3.x

我想从用户那里获取这样的嵌套列表。 [(2, 5), (1, 2), (4, 4), (2, 3), (2, 1)]

  
      
  1. 编写一个Python程序来获取一个列表,按最后一个元素的递增顺序排序   在来自给定非空元组列表的每个元组中。转到编辑器

         

    示例清单:[(2, 5), (1, 2), (4, 4), (2, 3), (2, 1)]

         

    预期结果:[(2, 1), (1, 2), (2, 3), (4, 4), (2, 5)]

  2.   
def sorted_lst(lst):
    nlst = []
    for i in lst:
        if i[1] < (i+1)[1]:
            nlst += i
        else:
            nlst += i+1
    return nlst
ui = int(input("How many input?"))
ulst = []
for i in range(ui):
    ui1 = list(map(int,input("Enter elements: ").split(',')))
    ulst += ui1
print(ulst)
print(sorted_lst(ulst))

2 个答案:

答案 0 :(得分:0)

这一行:

ui1 = list(map(int,input("Enter elements: ").split(',')))

x,y形式的每个用户输入行转换为2个列表[x,y]。但是你的问题陈述说它应该是一个元组:

ui1 = tuple(map(int,input("Enter elements: ").split(',')))

这一行:

ulst += ui1

不会将用户的输入元组作为列表ulst中的新元素附加。它附加了输入元组的元素,所以你最终得到的是一个长度为2*ui的整数列表,而不是长度为ui的2元组列表。请改用ulst.append(ui1)

最后,除非你的作业要求它,否则编写你自己的排序函数。

print (sorted(ulst,key = lambda a: a[1]))

您的功能sorted_lst很好地说明了原因。

答案 1 :(得分:0)

我是python的新手。我几天前才开始学习,但我想我知道如何将嵌套列表作为用户的输入。在python 3中试试这个。

ulst = [[int(input(f"Enter row {i+1}, column {j+1}: ")) for j in range(2)] for i in range(5)]

Here is how the output looks like in the terminal