这是我创建列表的代码,但是它是如此残酷和微不足道,你们有一些想法使其更平滑吗?
我想写的是代码,您可以在其中创建自己的列表,选择要创建的列表以及每个列表应具有的项目-不使用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
如果有人想知道如何使它更有效和更清晰,请在这里告诉我! :)感谢您的帮助家伙
答案 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}}。如果用户键入字母,将引发错误。