我多次试图这样做但是失败了
尝试1
num = int(input("How many products are you looking at: "))
for i in range(num):
a="list"+str(i)
a=[]
尝试2(假设少于26个列表)
num = int(input("How many products are you looking at: "))
alphabet="abcdefghijklmnopqrstuvwxyz"
while(num>0):
alphabet[0]=[]
num=num-1
alphabet=alphabet[1:]
感谢您提供的任何帮助
额外部分:
谢谢,谢谢你的帮助。我有一个最后一步,我需要制作n个矩阵。有没有办法制作任意数量的矩阵,比如5,矩阵标题为matrix1 = ......,matrix2 = .....等等?然后将列表中的矩阵。我一直在使用Python中的numpy,并且知道如何制作矩阵。下面是3x3矩阵。
matrix = numpy.zeros(shape=(3,3))
但是一个矩阵列表给了我一些问题。这是我的尝试。
listOfMatrices=list(map(lambda x:matrix,range(int(num))))
另一种尝试。
[matrix = numpy.zeros(shape=(n,n)) for _ in range(int(n)))]
答案 0 :(得分:6)
这是list comprehension的一个很好的用例:
[[] for _ in range(int(input("How Many?")))]
这会产生[]
- 每次迭代的空列表,但您可以使用任何表达式来构建结果列表。
结果是一个项目列表 - 在这种情况下为空列表:[[], [], ...]
。
当然,您可以使用迭代中的值,例如:
>>> [["First Element of List {0}".format(i)] for i in range(int(input("How Many?")))]
How Many?5
[['First Element of List 0'], ['First Element of List 1'],
['First Element of List 2'], ['First Element of List 3'],
['First Element of List 4']]
这些列表中的每一个都与任何其他对象一样。如果您将此列表分配给值(items = [... for ... in ...]
),那么您可以像访问任何其他项目(items[0]
)一样访问子列表,并从那里访问子列表的项目({{1} })。
items[0][0]
答案 1 :(得分:0)
list(map(lambda x:list(),range(int(input("How Many?")))))
是一种方式
[[]]*int(input("How Many?"))
是另一种方式(虽然它可能表现得与你想象的不同)
有很多方法可以做到这一点,最好的方法是通过理解你自己写的那个
python有这些叫做列表推导的东西
[do_something(item) for item in a_list]
会创建一个新的do_something项目列表
现在假装你已经获得了用户输入并且有一个整数
user_input = 5
#you might think the following would work
[do_something(i) for i in user_input] #this will give you an error since ints are not iterable
python可以让你轻松地从一个数字中创建一个列表
a_list_from_a_number = range( user_input )
现在只需使用所有这些部分来编写自己的程序:)