Python: Creating a number of lists depending on the count
Im trying to create a number of lists depending on the number in my header_count. The co开发者_C百科de below should generate 3 lists but i get a syntax error instead.
header_count = 4
for i in range(1, header_count):
header_%s = [] % i
This is my interpretation of what you want, I hope I guessed it right (you weren't very clear).
header_count = 4
headers = [[] for i in range(1, header_count)]
Now you can use it like this:
headers[1].append("this goes in the first header")
headers[2].append("this goes in the second header")
What you want is to to create a list of lists:
header_count = 4
header = []
for i in range(header_count):
header[i] = []
In the header variable references a list containing 4 lists. Each list can be accessed as follow:
header[0].append(1)
header[1].append("Hi")
header[2].append(3.14)
header[3].append(True)
If you need list names (as it seems from your comment to nightcracker answer), you can use a dictionary of lists:
header_count = 4
listDict = {}
for i in range(1, header_count):
listDict["header_"+str(i)] = []
Then you can access the dictionary using header_1, header_2, header_3 as keys.
What did you mean by header_%s
? %
is the mod operator, of course you can't assign to an expression involving an operator. It's like writing
a+b = c
You can't assign to a+b
, nor can you assign to header_%s
.
Did you mean this?
header_lists = [[] for i in range(1,header_count)]
You can use global() to create these variables:
header_count = 4
for i in range(1, header_count):
globals()[f"header_{i}"] = []
Note: you started your range with value 1, so you will create three empty lists:
header_1
header_2
header_3
精彩评论