0

Why this code:

result_list = [[]]*14
result_list[3].append('sdfda')
print(result_list)

is output:

[['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda']]

but i expect:

[[], [], [], ['sdfda'], [], [], [], [], [], [], [], [], [], []]

I want to insert elements by index...but this example of code insert the element in all list of list

azro
  • 53,056
  • 7
  • 34
  • 70

1 Answers1

0

When you write [x]*3 you get, essentially, the list [x, x, x]. That is, a list with 3 references to the same x. When you then modify this single x it is visible via all three references to it.

Try this:

result_list = [[]]*14
result_list[3]=['sdfda']
print(result_list)
Nandu Raj
  • 2,072
  • 9
  • 20