Python, для цикла - создание списков - PullRequest
0 голосов
/ 20 октября 2018

Это мой код для создания списков, но он настолько жестокий и не элегантный, у вас, ребята, есть идея сделать его намного плавнее?

Дело в том, что я хочу написать код, где вы могли бы создать свой собственныйсписки, выберите, сколько из них вы хотите создать и сколько элементов должен иметь каждый - НЕ используя цикл while.Я могу управлять созданием определенного количества списков, введя диапазон для цикла (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 списков.

Теперь вы видите мою проблему, я надеюсь.Мне нужно создать новые списки из ввода и назвать их, если это возможно, поэтому вместо list1 я могу назвать его DOGS или W / E.

Мне нужно все это гораздо более простым и взаимосвязанным, я надеюсь, вы понимаете мою проблемуи, может быть, есть какое-то плавное решение, спасибо:)

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Хорошо, я думаю, что получил это сейчас - это новая версия, делающая в значительной степени то, что я хочу сделать:

    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

Если у кого-то есть идеи, как сделать это более эффективным и понятным, дайте мне знать здесь!:) спасибо за помощь guyz

1 Ответ

0 голосов
/ 20 октября 2018

Вы можете добавить свои списки в другой список, таким образом, он будет динамичным, как вы хотите.Пример ниже:

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.Если пользователь введет букву, он выдаст ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...