Reviewed by Aditya Kumar · Last reviewed 2026-03-24
**Assignment vs Copy:** list1 = list2 → alias, same object. list1 = list2.copy() (or list2[:]) → shallow copy, new list, same element refs. Nested structures shared in shallow copy. **When to Use:** Alias when you want to modify original through both refs. Shallow copy when you...
This easy-level Python/Coding question appears frequently in data engineering interviews at companies like HCL. While less common, it tests deeper understanding that distinguishes strong candidates.
Start by clearly defining the core concept being asked about. Interviewers want to see that you understand the fundamentals before diving into implementation details. Structure your answer with a definition, then explain the practical application with a concise example.
Assignment vs Copy: list1 = list2 → alias, same object. list1 = list2.copy() (or list2[:]) → shallow copy, new list, same element refs. Nested structures shared in shallow copy.
When to Use: Alias when you want to modify original through both refs. Shallow copy when you need independent list but elements can be shared. Deep copy when elements are mutable and must be independent.
a = [1, [2,3]]
b = a; b[0] = 99 # a[0] also 99
c = a.copy(); c[0] = 1 # a[0] still 99; c[1] shared with a[1]
Production: Copy before in-place transform if original must be preserved. For pipelines: pass copies to avoid accidental mutation.
Red Flag: Assuming copy() makes nested structures independent. Pro-Move: 'We use copy.deepcopy for config dicts passed to workers—each gets its own nested state.'
Some links below are affiliate links. If you buy through them we may earn a small commission at no extra cost to you — it helps keep DataEngPrep free.
According to DataEngPrep.tech, this is one of the most frequently asked Python/Coding interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.