基本上我想做的是有一个程序根据用户输入制作一个列表,例如:
a=input
b=input
c=input
list1=[a,b,c]
然后让它再次(形成list2)再次执行,依此类推,直到它到达list37,我想在其中列出一个列表,例如:
listMASTER=[list1,list2,list3...list36]
我不想写这个:
a=input
b=input
c=input
listn=[a,b,c]
36次,所以我想让它一次又一次地循环,每次都形成一个新列表。
答案 0 :(得分:1)
尝试这样的事情:
outer_listen = []
n = 36 #Or howmany ever times you want to loop
for i in range(n): #0 through 35
a = input()
b = input()
c = input()
lstn = [a, b, c]
outer_listen.append(lstn)
答案 1 :(得分:1)
使用这种方式轻松完成:
olist=[]
for i in range(n): #n is the number of items you need the list (as in your case, 37)
lis=[input(),input(),input()]
olist.append(lis)
这将减少步骤数
答案 2 :(得分:1)
您可以使用嵌套循环:
list_of_lists = [[input() for _ in range(3)] for _ in range(36)]
或者更方便的是,也接受来自文件的输入,例如,使用csv格式:
a,b,c
d,f,g
...
对应代码:
import csv
import fileinput
list_of_lists = list(csv.reader(fileinput.input()))
用法:
$ python make-list.py input.csv
或者
$ echo a,b,c | python make-list.py
答案 3 :(得分:0)
有点密集,但仍然可以阅读列表理解
n = 36
prompt = 'Please enter for {}{}: '
all_inputs = [[input(prompt.format(char, num)) for char in 'abc']
for num in range(n)]
print(all_inputs)
为您提供36 x 3输入提示:
Please enter for a0: 1
Please enter for b0: 2
Please enter for c0: 3
Please enter for a1: 4
Please enter for b1: 5
Please enter for c1: 6
...
[['1', '2', '3'], ['4', '5', '6'], ...]
答案 4 :(得分:0)
master = [[input(),input(),input()] for i in xrange(37)]