Python:根据用户输入构建2D属性列表

时间:2018-04-15 12:41:17

标签: python list

python非常新。我有兴趣学习如何构建一个2D列表,其中每一行包含第一列中的对象编号,以及下一列中的属性。这将针对用户定义的尽可能多的对象完成。它看起来像这样:

Object1大重正方形

Object2小重轮

Object3小光轮

因此,如果用户说有八个对象,则循环会询问每个对象的对象编号,大小,重量和形状,并填充列表。任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

您已完成上一段中的大部分工作。有几种方法可以做到这一点:

Naïvefor循环:

objects = []
for index in range(1, 9):
    size = input("Size: ")
    weight = input("Weight: ")
    shape = input("Shape: ")
    objects.append(["Object" + str(index), size, weight, shape])

嵌套for循环:

names = ["Size", "Weight", "Shape"]
objects = []
for index in range(1, 9):
    object = ["Object" + str(index)]
    for name in names:
        object.append(input(name + ": "))

嵌套列表理解

names = ["Size", "Weight", "Shape"]
objects = [
    ["Object" + str(index)] + [
        input(name + ": ")
        for name in names
    ] for index in range(1, 9)
]

您可以看到每个版本都基于最后一个版本。列表理解是建立列表的一种巧妙方式;你以前可能会或可能不会遇到它。