Python,FOR循环-创建列表

时间:2018-10-20 14:50:58

标签: list loops

这是我创建列表的代码,但是它是如此残酷和微不足道,你们有一些想法使其更平滑吗?

我想写的是代码,您可以在其中创建自己的列表,选择要创建的列表以及每个列表应具有的项目-不使用while循环。我可以通过在for循环(number_of_lists)中输入范围来管理创建一定数量的列表

    i = 0
    number_of_lists = input('How many lists you want to make?  >')

    for cycle in range(number_of_lists):   #this was originaly range(3), 
        item1 = raw_input('1. item > ')    #and will only work now pro-
        item2 = raw_input('2. item > ')    #perly, if n_o_l is exact. 3
        item3 = raw_input('3. item > ') 



                                           #everything is wrong with this
        print "-------------------"        #code, i need it much more au-
                                           #tonomous, than it is now.
        if i == 0:
            list1 = [item1, item2, item3]
        if i == 1:
            list2 = [item1, item2, item3]
        if i == 2:
            list3 = [item1, item2, item3]
        i += 1  


    print list1
    print list2
    print list3

我还想避免所有'if i == int'的事情。

现在它将只创建3个列表,对,因为我最初不是使用number_of_lists而是使用整数3来创建3个列表。

现在您希望看到我的问题。我需要根据输入内容创建新列表,并在可能的情况下为其命名,因此我可以将其命名为DOGS或w / e,而不是list1。

我需要所有这些都更加简单和相互联系,希望您能理解我的问题,并且也许能找到一些顺利的解决方案,谢谢:)

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 好的,我想我现在知道了-这是新版本,几乎可以完成我想做的事情:

    number_of_lists = input('How many lists you want to make?  >')

    allItems = []


    for cycle in range(int(number_of_lists)):
         items = []
         number_of_items = input('How much items in this list?  >')

         for i in range(int(number_of_items)):
                 item = raw_input(str(i+1) + ". item > ")
                 items.append(item)

         allItems.append(items)

         print("-------------------")


    print allItems

如果有人想知道如何使它更有效和更清晰,请在这里告诉我! :)感谢您的帮助家伙

1 个答案:

答案 0 :(得分:0)

您可以将列表添加到另一个列表中,这样它就可以根据需要动态变化。下面的示例:

number_of_lists = input('How many lists you want to make?  >')

allItems = []
for cycle in range(int(number_of_lists)):
    items = []
    for i in range(1, 4):
        item = input(str(i) + ".item > ")
        items.append(item)

    allItems.append(items)

    print("-------------------")


for items in allItems:
  for item in items:
    print(item)

  print("-------------")

在将number_of_lists解析为int之前,您仍然需要检查int是否为{{1}}。如果用户键入字母,将引发错误。