循环特定次数,每次制作一个新列表

时间:2013-06-08 23:15:41

标签: python list loops

基本上我想做的是有一个程序根据用户输入制作一个列表,例如:

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次,所以我想让它一次又一次地循环,每次都形成一个新列表。

5 个答案:

答案 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)]