-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathlist.html
More file actions
525 lines (410 loc) · 128 KB
/
list.html
File metadata and controls
525 lines (410 loc) · 128 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Python - List</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="description" content="List methods and supported operators, Accessing list values, Checking if list is empty, Iterating over a list, Checking whether an item is in a list, Any and All, Length of a list, Reversing list elements, Concatenate and Merge lists, Remove duplicate values in list, Comparison of lists, Accessing values in nested list, Initializing a List to a Fixed Number of Elements">
<meta property="og:site_name" content="DevTut">
<meta property="og:title" content="Python - List">
<meta property="og:description" content="List methods and supported operators, Accessing list values, Checking if list is empty, Iterating over a list, Checking whether an item is in a list, Any and All, Length of a list, Reversing list elements, Concatenate and Merge lists, Remove duplicate values in list, Comparison of lists, Accessing values in nested list, Initializing a List to a Fixed Number of Elements">
<meta property="og:type" content="article">
<meta property="og:url" content="/python/list.html">
<meta property="og:image" content="/logo.png">
<meta name="twitter:title" content="Python - List">
<meta name="twitter:description" content="List methods and supported operators, Accessing list values, Checking if list is empty, Iterating over a list, Checking whether an item is in a list, Any and All, Length of a list, Reversing list elements, Concatenate and Merge lists, Remove duplicate values in list, Comparison of lists, Accessing values in nested list, Initializing a List to a Fixed Number of Elements">
<meta name="twitter:url" content="/python/list.html">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="/logo.png">
<meta name="theme-color" content="#ffffff">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="msapplication-TileImage" content="/mstile-150x150.png">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="google-site-verification" content="76_rKXgwMVIjd-axJC_1zPV9OS4mEjvtgjYOWVkAdnQ">
<link rel="preload" href="/assets/css/0.styles.60619e34.css" as="style"><link rel="preload" href="/assets/js/app.1779e102.js" as="script"><link rel="preload" href="/assets/js/3.2cfa8016.js" as="script"><link rel="preload" href="/assets/js/2739.fba3ea7e.js" as="script">
<link rel="stylesheet" href="/assets/css/0.styles.60619e34.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">DevTut</span></a> <div class="links"><form id="search-form" role="search" class="algolia-search-wrapper search-box"><input id="algolia-search-input" class="search-query"></form> <nav class="nav-links can-hide"> <a href="https://github.com/devtut/generate" target="_blank" rel="noopener noreferrer" class="repo-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"> <a href="https://github.com/devtut/generate" target="_blank" rel="noopener noreferrer" class="repo-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Python</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/python/" aria-current="page" class="sidebar-link">Disclaimer</a></li><li><a href="/python/getting-started-with-python-language.html" class="sidebar-link">Getting started with Python Language</a></li><li><a href="/python/python-data-types.html" class="sidebar-link">Python Data Types</a></li><li><a href="/python/indentation.html" class="sidebar-link">Indentation</a></li><li><a href="/python/comments-and-documentation.html" class="sidebar-link">Comments and Documentation</a></li><li><a href="/python/date-and-time.html" class="sidebar-link">Date and Time</a></li><li><a href="/python/enum.html" class="sidebar-link">Enum</a></li><li><a href="/python/set.html" class="sidebar-link">Set</a></li><li><a href="/python/simple-mathematical-operators.html" class="sidebar-link">Simple Mathematical Operators</a></li><li><a href="/python/bitwise-operators.html" class="sidebar-link">Bitwise Operators</a></li><li><a href="/python/boolean-operators.html" class="sidebar-link">Boolean Operators</a></li><li><a href="/python/operator-precedence.html" class="sidebar-link">Operator Precedence</a></li><li><a href="/python/variable-scope-and-binding.html" class="sidebar-link">Variable Scope and Binding</a></li><li><a href="/python/conditionals.html" class="sidebar-link">Conditionals</a></li><li><a href="/python/comparisons.html" class="sidebar-link">Comparisons</a></li><li><a href="/python/loops.html" class="sidebar-link">Loops</a></li><li><a href="/python/arrays.html" class="sidebar-link">Arrays</a></li><li><a href="/python/multidimensional-arrays.html" class="sidebar-link">Multidimensional arrays</a></li><li><a href="/python/dictionary.html" class="sidebar-link">Dictionary</a></li><li><a href="/python/list.html" aria-current="page" class="active sidebar-link">List</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/python/list.html#list-methods-and-supported-operators" class="sidebar-link">List methods and supported operators</a></li><li class="sidebar-sub-header"><a href="/python/list.html#accessing-list-values" class="sidebar-link">Accessing list values</a></li><li class="sidebar-sub-header"><a href="/python/list.html#checking-if-list-is-empty" class="sidebar-link">Checking if list is empty</a></li><li class="sidebar-sub-header"><a href="/python/list.html#iterating-over-a-list" class="sidebar-link">Iterating over a list</a></li><li class="sidebar-sub-header"><a href="/python/list.html#checking-whether-an-item-is-in-a-list" class="sidebar-link">Checking whether an item is in a list</a></li><li class="sidebar-sub-header"><a href="/python/list.html#any-and-all" class="sidebar-link">Any and All</a></li><li class="sidebar-sub-header"><a href="/python/list.html#length-of-a-list" class="sidebar-link">Length of a list</a></li><li class="sidebar-sub-header"><a href="/python/list.html#reversing-list-elements" class="sidebar-link">Reversing list elements</a></li><li class="sidebar-sub-header"><a href="/python/list.html#concatenate-and-merge-lists" class="sidebar-link">Concatenate and Merge lists</a></li><li class="sidebar-sub-header"><a href="/python/list.html#remove-duplicate-values-in-list" class="sidebar-link">Remove duplicate values in list</a></li><li class="sidebar-sub-header"><a href="/python/list.html#comparison-of-lists" class="sidebar-link">Comparison of lists</a></li><li class="sidebar-sub-header"><a href="/python/list.html#accessing-values-in-nested-list" class="sidebar-link">Accessing values in nested list</a></li><li class="sidebar-sub-header"><a href="/python/list.html#initializing-a-list-to-a-fixed-number-of-elements" class="sidebar-link">Initializing a List to a Fixed Number of Elements</a></li></ul></li><li><a href="/python/list-comprehensions.html" class="sidebar-link">List Comprehensions</a></li><li><a href="/python/list-slicing-selecting-parts-of-lists.html" class="sidebar-link">List slicing (selecting parts of lists)</a></li><li><a href="/python/groupby.html" class="sidebar-link">groupby()</a></li><li><a href="/python/linked-lists.html" class="sidebar-link">Linked lists</a></li><li><a href="/python/linked-list-node.html" class="sidebar-link">Linked List Node</a></li><li><a href="/python/filter.html" class="sidebar-link">Filter</a></li><li><a href="/python/heapq.html" class="sidebar-link">Heapq</a></li><li><a href="/python/tuple.html" class="sidebar-link">Tuple</a></li><li><a href="/python/basic-input-and-output.html" class="sidebar-link">Basic Input and Output</a></li><li><a href="/python/files-folders-i-o.html" class="sidebar-link">Files & Folders I/O</a></li><li><a href="/python/os-path.html" class="sidebar-link">os.path</a></li><li><a href="/python/iterables-and-iterators.html" class="sidebar-link">Iterables and Iterators</a></li><li><a href="/python/functions.html" class="sidebar-link">Functions</a></li><li><a href="/python/defining-functions-with-list-arguments.html" class="sidebar-link">Defining functions with list arguments</a></li><li><a href="/python/functional-programming-in-python.html" class="sidebar-link">Functional Programming in Python</a></li><li><a href="/python/partial-functions.html" class="sidebar-link">Partial functions</a></li><li><a href="/python/decorators.html" class="sidebar-link">Decorators</a></li><li><a href="/python/classes.html" class="sidebar-link">Classes</a></li><li><a href="/python/metaclasses.html" class="sidebar-link">Metaclasses</a></li><li><a href="/python/string-formatting.html" class="sidebar-link">String Formatting</a></li><li><a href="/python/string-methods.html" class="sidebar-link">String Methods</a></li><li><a href="/python/using-loops-within-functions.html" class="sidebar-link">Using loops within functions</a></li><li><a href="/python/importing-modules.html" class="sidebar-link">Importing modules</a></li><li><a href="/python/difference-between-module-and-package.html" class="sidebar-link">Difference between Module and Package</a></li><li><a href="/python/math-module.html" class="sidebar-link">Math Module</a></li><li><a href="/python/complex-math.html" class="sidebar-link">Complex math</a></li><li><a href="/python/collections-module.html" class="sidebar-link">Collections module</a></li><li><a href="/python/operator-module.html" class="sidebar-link">Operator module</a></li><li><a href="/python/json-module.html" class="sidebar-link">JSON Module</a></li><li><a href="/python/sqlite3-module.html" class="sidebar-link">Sqlite3 Module</a></li><li><a href="/python/the-os-module.html" class="sidebar-link">The os Module</a></li><li><a href="/python/the-locale-module.html" class="sidebar-link">The locale Module</a></li><li><a href="/python/itertools-module.html" class="sidebar-link">Itertools Module</a></li><li><a href="/python/asyncio-module.html" class="sidebar-link">Asyncio Module</a></li><li><a href="/python/random-module.html" class="sidebar-link">Random module</a></li><li><a href="/python/functools-module.html" class="sidebar-link">Functools Module</a></li><li><a href="/python/the-dis-module.html" class="sidebar-link">The dis module</a></li><li><a href="/python/the-base64-module.html" class="sidebar-link">The base64 Module</a></li><li><a href="/python/queue-module.html" class="sidebar-link">Queue Module</a></li><li><a href="/python/deque-module.html" class="sidebar-link">Deque Module</a></li><li><a href="/python/webbrowser-module.html" class="sidebar-link">Webbrowser Module</a></li><li><a href="/python/tkinter.html" class="sidebar-link">tkinter</a></li><li><a href="/python/pyautogui-module.html" class="sidebar-link">pyautogui module</a></li><li><a href="/python/indexing-and-slicing.html" class="sidebar-link">Indexing and Slicing</a></li><li><a href="/python/plotting-with-matplotlib.html" class="sidebar-link">Plotting with Matplotlib</a></li><li><a href="/python/graph-tool.html" class="sidebar-link">graph-tool</a></li><li><a href="/python/generators.html" class="sidebar-link">Generators</a></li><li><a href="/python/reduce.html" class="sidebar-link">Reduce</a></li><li><a href="/python/map-function.html" class="sidebar-link">Map Function</a></li><li><a href="/python/exponentiation.html" class="sidebar-link">Exponentiation</a></li><li><a href="/python/searching.html" class="sidebar-link">Searching</a></li><li><a href="/python/sorting-minimum-and-maximum.html" class="sidebar-link">Sorting, Minimum and Maximum</a></li><li><a href="/python/counting.html" class="sidebar-link">Counting</a></li><li><a href="/python/the-print-function.html" class="sidebar-link">The Print Function</a></li><li><a href="/python/regular-expressions-regex.html" class="sidebar-link">Regular Expressions (Regex)</a></li><li><a href="/python/copying-data.html" class="sidebar-link">Copying data</a></li><li><a href="/python/context-managers-with-statement.html" class="sidebar-link">Context Managers (“with” Statement)</a></li><li><a href="/python/the-name-special-variable.html" class="sidebar-link">The _name_ special variable</a></li><li><a href="/python/checking-path-existence-and-permissions.html" class="sidebar-link">Checking Path Existence and Permissions</a></li><li><a href="/python/creating-python-packages.html" class="sidebar-link">Creating Python packages</a></li><li><a href="/python/usage-of-pip-module-pypi-package-manager.html" class="sidebar-link">Usage of "pip" module: PyPI Package Manager</a></li><li><a href="/python/pip-pypi-package-manager.html" class="sidebar-link">pip: PyPI Package Manager</a></li><li><a href="/python/parsing-command-line-arguments.html" class="sidebar-link">Parsing Command Line arguments</a></li><li><a href="/python/subprocess-library.html" class="sidebar-link">Subprocess Library</a></li><li><a href="/python/setup-py.html" class="sidebar-link">setup.py</a></li><li><a href="/python/recursion.html" class="sidebar-link">Recursion</a></li><li><a href="/python/type-hints.html" class="sidebar-link">Type Hints</a></li><li><a href="/python/exceptions.html" class="sidebar-link">Exceptions</a></li><li><a href="/python/raise-custom-errors-exceptions.html" class="sidebar-link">Raise Custom Errors / Exceptions</a></li><li><a href="/python/commonwealth-exceptions.html" class="sidebar-link">Commonwealth Exceptions</a></li><li><a href="/python/urllib.html" class="sidebar-link">urllib</a></li><li><a href="/python/web-scraping-with-python.html" class="sidebar-link">Web scraping with Python</a></li><li><a href="/python/html-parsing.html" class="sidebar-link">HTML Parsing</a></li><li><a href="/python/manipulating-xml.html" class="sidebar-link">Manipulating XML</a></li><li><a href="/python/python-requests-post.html" class="sidebar-link">Python Requests Post</a></li><li><a href="/python/distribution.html" class="sidebar-link">Distribution</a></li><li><a href="/python/property-objects.html" class="sidebar-link">Property Objects</a></li><li><a href="/python/overloading.html" class="sidebar-link">Overloading</a></li><li><a href="/python/polymorphism.html" class="sidebar-link">Polymorphism</a></li><li><a href="/python/method-overriding.html" class="sidebar-link">Method Overriding</a></li><li><a href="/python/user-defined-methods.html" class="sidebar-link">User-Defined Methods</a></li><li><a href="/python/string-representations-of-class-instances-str-and-repr-methods.html" class="sidebar-link">String representations of class instances: _str and repr_ methods</a></li><li><a href="/python/debugging.html" class="sidebar-link">Debugging</a></li><li><a href="/python/reading-and-writing-csv.html" class="sidebar-link">Reading and Writing CSV</a></li><li><a href="/python/writing-to-csv-from-string-or-list.html" class="sidebar-link">Writing to CSV from String or List</a></li><li><a href="/python/dynamic-code-execution-with-exec-and-eval.html" class="sidebar-link">Dynamic code execution with exec and eval</a></li><li><a href="/python/pyinstaller-distributing-python-code.html" class="sidebar-link">PyInstaller - Distributing Python Code</a></li><li><a href="/python/data-visualization-with-python.html" class="sidebar-link">Data Visualization with Python</a></li><li><a href="/python/the-interpreter-command-line-console.html" class="sidebar-link">The Interpreter (Command Line Console)</a></li><li><a href="/python/args-and-kwargs.html" class="sidebar-link">args and *kwargs</a></li><li><a href="/python/garbage-collection.html" class="sidebar-link">Garbage Collection</a></li><li><a href="/python/pickle-data-serialisation.html" class="sidebar-link">Pickle data serialisation</a></li><li><a href="/python/binary-data.html" class="sidebar-link">Binary Data</a></li><li><a href="/python/idioms.html" class="sidebar-link">Idioms</a></li><li><a href="/python/data-serialization.html" class="sidebar-link">Data Serialization</a></li><li><a href="/python/multiprocessing.html" class="sidebar-link">Multiprocessing</a></li><li><a href="/python/multithreading.html" class="sidebar-link">Multithreading</a></li><li><a href="/python/processes-and-threads.html" class="sidebar-link">Processes and Threads</a></li><li><a href="/python/python-concurrency.html" class="sidebar-link">Python concurrency</a></li><li><a href="/python/parallel-computation.html" class="sidebar-link">Parallel computation</a></li><li><a href="/python/sockets.html" class="sidebar-link">Sockets</a></li><li><a href="/python/websockets.html" class="sidebar-link">Websockets</a></li><li><a href="/python/sockets-and-message-encryption-decryption-between-client-and-server.html" class="sidebar-link">Sockets And Message Encryption/Decryption Between Client and Server</a></li><li><a href="/python/python-networking.html" class="sidebar-link">Python Networking</a></li><li><a href="/python/python-http-server.html" class="sidebar-link">Python HTTP Server</a></li><li><a href="/python/flask.html" class="sidebar-link">Flask</a></li><li><a href="/python/introduction-to-rabbitmq-using-amqpstorm.html" class="sidebar-link">Introduction to RabbitMQ using AMQPStorm</a></li><li><a href="/python/descriptor.html" class="sidebar-link">Descriptor</a></li><li><a href="/python/tempfile-namedtemporaryfile.html" class="sidebar-link">tempfile NamedTemporaryFile</a></li><li><a href="/python/input-subset-and-output-external-data-files-using-pandas.html" class="sidebar-link">Input, Subset and Output External Data Files using Pandas</a></li><li><a href="/python/unzipping-files.html" class="sidebar-link">Unzipping Files</a></li><li><a href="/python/working-with-zip-archives.html" class="sidebar-link">Working with ZIP archives</a></li><li><a href="/python/getting-start-with-gzip.html" class="sidebar-link">getting start with GZip</a></li><li><a href="/python/stack.html" class="sidebar-link">Stack</a></li><li><a href="/python/working-around-the-global-interpreter-lock-gil.html" class="sidebar-link">Working around the Global Interpreter Lock (GIL)</a></li><li><a href="/python/deployment.html" class="sidebar-link">Deployment</a></li><li><a href="/python/logging.html" class="sidebar-link">Logging</a></li><li><a href="/python/web-server-gateway-interface-wsgi.html" class="sidebar-link">Web Server Gateway Interface (WSGI)</a></li><li><a href="/python/python-server-sent-events.html" class="sidebar-link">Python Server Sent Events</a></li><li><a href="/python/alternatives-to-switch-statement-from-other-languages.html" class="sidebar-link">Alternatives to switch statement from other languages</a></li><li><a href="/python/list-destructuring-aka-packing-and-unpacking.html" class="sidebar-link">List destructuring (aka packing and unpacking)</a></li><li><a href="/python/accessing-python-source-code-and-bytecode.html" class="sidebar-link">Accessing Python source code and bytecode</a></li><li><a href="/python/mixins.html" class="sidebar-link">Mixins</a></li><li><a href="/python/attribute-access.html" class="sidebar-link">Attribute Access</a></li><li><a href="/python/arcpy.html" class="sidebar-link">ArcPy</a></li><li><a href="/python/abstract-base-classes-abc.html" class="sidebar-link">Abstract Base Classes (abc)</a></li><li><a href="/python/plugin-and-extension-classes.html" class="sidebar-link">Plugin and Extension Classes</a></li><li><a href="/python/immutable-datatypes-int-float-str-tuple-and-frozensets.html" class="sidebar-link">Immutable datatypes(int, float, str, tuple and frozensets)</a></li><li><a href="/python/incompatibilities-moving-from-python-2-to-python-3.html" class="sidebar-link">Incompatibilities moving from Python 2 to Python 3</a></li><li><a href="/python/2to3-tool.html" class="sidebar-link">2to3 tool</a></li><li><a href="/python/non-official-python-implementations.html" class="sidebar-link">Non-official Python implementations</a></li><li><a href="/python/abstract-syntax-tree.html" class="sidebar-link">Abstract syntax tree</a></li><li><a href="/python/unicode-and-bytes.html" class="sidebar-link">Unicode and bytes</a></li><li><a href="/python/python-serial-communication-pyserial.html" class="sidebar-link">Python Serial Communication (pyserial)</a></li><li><a href="/python/neo4j-and-cypher-using-py2neo.html" class="sidebar-link">Neo4j and Cypher using Py2Neo</a></li><li><a href="/python/basic-curses-with-python.html" class="sidebar-link">Basic Curses with Python</a></li><li><a href="/python/templates-in-python.html" class="sidebar-link">Templates in python</a></li><li><a href="/python/pillow.html" class="sidebar-link">Pillow</a></li><li><a href="/python/the-pass-statement.html" class="sidebar-link">The pass statement</a></li><li><a href="/python/cli-subcommands-with-precise-help-output.html" class="sidebar-link">CLI subcommands with precise help output</a></li><li><a href="/python/database-access.html" class="sidebar-link">Database Access</a></li><li><a href="/python/connecting-python-to-sql-server.html" class="sidebar-link">Connecting Python to SQL Server</a></li><li><a href="/python/postgresql.html" class="sidebar-link">PostgreSQL</a></li><li><a href="/python/python-and-excel.html" class="sidebar-link">Python and Excel</a></li><li><a href="/python/turtle-graphics.html" class="sidebar-link">Turtle Graphics</a></li><li><a href="/python/python-persistence.html" class="sidebar-link">Python Persistence</a></li><li><a href="/python/design-patterns.html" class="sidebar-link">Design Patterns</a></li><li><a href="/python/hashlib.html" class="sidebar-link">hashlib</a></li><li><a href="/python/creating-a-windows-service-using-python.html" class="sidebar-link">Creating a Windows service using Python</a></li><li><a href="/python/mutable-vs-immutable-and-hashable-in-python.html" class="sidebar-link">Mutable vs Immutable (and Hashable) in Python</a></li><li><a href="/python/configparser.html" class="sidebar-link">configparser</a></li><li><a href="/python/optical-character-recognition.html" class="sidebar-link">Optical Character Recognition</a></li><li><a href="/python/virtual-environments.html" class="sidebar-link">Virtual environments</a></li><li><a href="/python/python-virtual-environment-virtualenv.html" class="sidebar-link">Python Virtual Environment - virtualenv</a></li><li><a href="/python/virtual-environment-with-virtualenvwrapper.html" class="sidebar-link">virtual environment with virtualenvwrapper</a></li><li><a href="/python/create-virtual-environment-with-virtualenvwrapper-in-windows.html" class="sidebar-link">Create virtual environment with virtualenvwrapper in windows</a></li><li><a href="/python/sys.html" class="sidebar-link">sys</a></li><li><a href="/python/chempy-python-package.html" class="sidebar-link">ChemPy - python package</a></li><li><a href="/python/pygame.html" class="sidebar-link">pygame</a></li><li><a href="/python/pyglet.html" class="sidebar-link">Pyglet</a></li><li><a href="/python/audio.html" class="sidebar-link">Audio</a></li><li><a href="/python/pyaudio.html" class="sidebar-link">pyaudio</a></li><li><a href="/python/shelve.html" class="sidebar-link">shelve</a></li><li><a href="/python/iot-programming-with-python-and-raspberry-pi.html" class="sidebar-link">IoT Programming with Python and Raspberry PI</a></li><li><a href="/python/kivy-cross-platform-python-framework-for-nui-development.html" class="sidebar-link">kivy - Cross-platform Python Framework for NUI Development</a></li><li><a href="/python/pandas-transform-preform-operations-on-groups-and-concatenate-the-results.html" class="sidebar-link">Pandas Transform: Preform operations on groups and concatenate the results</a></li><li><a href="/python/similarities-in-syntax-differences-in-meaning-python-vs-javascript.html" class="sidebar-link">Similarities in syntax, Differences in meaning: Python vs. JavaScript</a></li><li><a href="/python/call-python-from-c.html" class="sidebar-link">Call Python from C#</a></li><li><a href="/python/ctypes.html" class="sidebar-link">ctypes</a></li><li><a href="/python/writing-extensions.html" class="sidebar-link">Writing extensions</a></li><li><a href="/python/python-lex-yacc.html" class="sidebar-link">Python Lex-Yacc</a></li><li><a href="/python/unit-testing.html" class="sidebar-link">Unit Testing</a></li><li><a href="/python/py-test.html" class="sidebar-link">py.test</a></li><li><a href="/python/profiling.html" class="sidebar-link">Profiling</a></li><li><a href="/python/python-speed-of-program.html" class="sidebar-link">Python speed of program</a></li><li><a href="/python/performance-optimization.html" class="sidebar-link">Performance optimization</a></li><li><a href="/python/security-and-cryptography.html" class="sidebar-link">Security and Cryptography</a></li><li><a href="/python/secure-shell-connection-in-python.html" class="sidebar-link">Secure Shell Connection in Python</a></li><li><a href="/python/python-anti-patterns.html" class="sidebar-link">Python Anti-Patterns</a></li><li><a href="/python/common-pitfalls.html" class="sidebar-link">Common Pitfalls</a></li><li><a href="/python/hidden-features.html" class="sidebar-link">Hidden Features</a></li><li><a href="/python/date-formatting.html" class="sidebar-link">Date Formatting</a></li><li><a href="/python/ijson.html" class="sidebar-link">ijson</a></li><li><a href="/python/django.html" class="sidebar-link">Django</a></li><li><a href="/python/code-blocks-execution-frames-and-namespaces.html" class="sidebar-link">Code blocks, execution frames, and namespaces</a></li><li><a href="/python/contributors.html" class="sidebar-link">The Contributors</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="list"><a href="#list" class="header-anchor">#</a> List</h1> <p>The Python <strong>List</strong> is a general data structure widely used in Python programs. They are found in other languages, often referred to as <strong>dynamic arrays</strong>. They are both <strong>mutable</strong> and a <strong>sequence</strong> data type that allows them to be <strong>indexed</strong> and <strong>sliced</strong>. The list can contain different types of objects, including other list objects.</p> <h2 id="list-methods-and-supported-operators"><a href="#list-methods-and-supported-operators" class="header-anchor">#</a> List methods and supported operators</h2> <p>Starting with a given list <code>a</code>:</p> <div class="language-py extra-class"><pre class="language-py"><code>a <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">]</span>
</code></pre></div><li>
`append(value)` – appends a new element to the end of the list.
<div class="language-py extra-class"><pre class="language-py"><code><span class="token comment"># Append values 6, 7, and 7 to the list</span>
a<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">)</span>
a<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span>
a<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span>
<span class="token comment"># a: [1, 2, 3, 4, 5, 6, 7, 7]</span>
<span class="token comment"># Append another list</span>
b <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">]</span>
a<span class="token punctuation">.</span>append<span class="token punctuation">(</span>b<span class="token punctuation">)</span>
<span class="token comment"># a: [1, 2, 3, 4, 5, 6, 7, 7, [8, 9]]</span>
<span class="token comment"># Append an element of a different type, as list elements do not need to have the same type</span>
my_string <span class="token operator">=</span> <span class="token string">"hello world"</span>
a<span class="token punctuation">.</span>append<span class="token punctuation">(</span>my_string<span class="token punctuation">)</span>
<span class="token comment"># a: [1, 2, 3, 4, 5, 6, 7, 7, [8, 9], "hello world"]</span>
</code></pre></div><p><strong>Note that</strong> the <code>append()</code> method only appends one new element to the end of the list. If you append a list to another list, the list that you append becomes a single element at the end of the first list.</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token comment"># Appending a list to another list</span>
a <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">]</span>
b <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">]</span>
a<span class="token punctuation">.</span>append<span class="token punctuation">(</span>b<span class="token punctuation">)</span>
<span class="token comment"># a: [1, 2, 3, 4, 5, 6, 7, 7, [8, 9]]</span>
a<span class="token punctuation">[</span><span class="token number">8</span><span class="token punctuation">]</span>
<span class="token comment"># Returns: [8,9]</span>
</code></pre></div></li> <li>
`extend(enumerable)` – extends the list by appending elements from another enumerable.
<div class="language-py extra-class"><pre class="language-py"><code>a <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">]</span>
b <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">]</span>
<span class="token comment"># Extend list by appending all elements from b</span>
a<span class="token punctuation">.</span>extend<span class="token punctuation">(</span>b<span class="token punctuation">)</span>
<span class="token comment"># a: [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10]</span>
<span class="token comment"># Extend list with elements from a non-list enumerable:</span>
a<span class="token punctuation">.</span>extend<span class="token punctuation">(</span><span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment"># a: [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 0, 1, 2]</span>
</code></pre></div><p>Lists can also be concatenated with the <code>+</code> operator. Note that this does not modify any of the original lists:</p> <div class="language-py extra-class"><pre class="language-py"><code>a <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">]</span> <span class="token operator">+</span> <span class="token punctuation">[</span><span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">]</span> <span class="token operator">+</span> b
<span class="token comment"># a: [1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10]</span>
</code></pre></div></li> <li>
`index(value, [startIndex])` – gets the index of the first occurrence of the input value. If the input value is not in the list a `ValueError` exception is raised. If a second argument is provided, the search is started at that specified index.
<div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>index<span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span>
<span class="token comment"># Returns: 6</span>
a<span class="token punctuation">.</span>index<span class="token punctuation">(</span><span class="token number">49</span><span class="token punctuation">)</span> <span class="token comment"># ValueError, because 49 is not in a.</span>
a<span class="token punctuation">.</span>index<span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">)</span>
<span class="token comment"># Returns: 7</span>
a<span class="token punctuation">.</span>index<span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">)</span> <span class="token comment"># ValueError, because there is no 7 starting at index 8</span>
</code></pre></div></li> <li>
`insert(index, value)` – inserts `value` just before the specified `index`. Thus after the insertion the new element occupies position `index`.
<div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>insert<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token comment"># insert 0 at position 0</span>
a<span class="token punctuation">.</span>insert<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token comment"># insert 5 at position 2</span>
<span class="token comment"># a: [0, 1, 5, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10]</span>
</code></pre></div></li> <li>
`pop([index])` – removes and returns the item at `index`. With no argument it removes and returns the last element of the list.
<div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>pop<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
<span class="token comment"># Returns: 5</span>
<span class="token comment"># a: [0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10]</span>
a<span class="token punctuation">.</span>pop<span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">)</span>
<span class="token comment"># Returns: 7</span>
<span class="token comment"># a: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</span>
<span class="token comment"># With no argument:</span>
a<span class="token punctuation">.</span>pop<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># Returns: 10</span>
<span class="token comment"># a: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</span>
</code></pre></div></li> <li>
`remove(value)` – removes the first occurrence of the specified value. If the provided value cannot be found, a `ValueError` is raised.
<div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>remove<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span>
a<span class="token punctuation">.</span>remove<span class="token punctuation">(</span><span class="token number">9</span><span class="token punctuation">)</span>
<span class="token comment"># a: [1, 2, 3, 4, 5, 6, 7, 8]</span>
a<span class="token punctuation">.</span>remove<span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span>
<span class="token comment"># ValueError, because 10 is not in a</span>
</code></pre></div></li> <li>
`reverse()` – reverses the list in-place and returns `None`.
<div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>reverse<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># a: [8, 7, 6, 5, 4, 3, 2, 1]</span>
</code></pre></div><p>There are also <a href="http://stackoverflow.com/documentation/python/3553/common-pitfalls/12259/list-multiplication-and-common-references#t=201607282214343131018" target="_blank" rel="noopener noreferrer">other ways of reversing a list<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.
</p></li> <li><code>count(value)</code> – counts the number of occurrences of some value in the list.<p></p> <div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>count<span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span>
<span class="token comment"># Returns: 2</span>
</code></pre></div></li> <li>
`sort()` – sorts the list in numerical and lexicographical order and returns `None`.
<div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>sort<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># a = [1, 2, 3, 4, 5, 6, 7, 8]</span>
<span class="token comment"># Sorts the list in numerical order</span>
</code></pre></div><p>Lists can also be reversed when sorted using the <code>reverse=True</code> flag in the <code>sort()</code> method.</p> <div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>reverse<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
<span class="token comment"># a = [8, 7, 6, 5, 4, 3, 2, 1]</span>
</code></pre></div><p>If you want to sort by attributes of items, you can use the <code>key</code> keyword argument:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">import</span> datetime
<span class="token keyword">class</span> <span class="token class-name">Person</span><span class="token punctuation">(</span><span class="token builtin">object</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">def</span> <span class="token function">__init__</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> name<span class="token punctuation">,</span> birthday<span class="token punctuation">,</span> height<span class="token punctuation">)</span><span class="token punctuation">:</span>
self<span class="token punctuation">.</span>name <span class="token operator">=</span> name
self<span class="token punctuation">.</span>birthday <span class="token operator">=</span> birthday
self<span class="token punctuation">.</span>height <span class="token operator">=</span> height
<span class="token keyword">def</span> <span class="token function">__repr__</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>name
l <span class="token operator">=</span> <span class="token punctuation">[</span>Person<span class="token punctuation">(</span><span class="token string">"John Cena"</span><span class="token punctuation">,</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1992</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">175</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
Person<span class="token punctuation">(</span><span class="token string">"Chuck Norris"</span><span class="token punctuation">,</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1990</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">28</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">180</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
Person<span class="token punctuation">(</span><span class="token string">"Jon Skeet"</span><span class="token punctuation">,</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1991</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">185</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
l<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span><span class="token keyword">lambda</span> item<span class="token punctuation">:</span> item<span class="token punctuation">.</span>name<span class="token punctuation">)</span>
<span class="token comment"># l: [Chuck Norris, John Cena, Jon Skeet]</span>
l<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span><span class="token keyword">lambda</span> item<span class="token punctuation">:</span> item<span class="token punctuation">.</span>birthday<span class="token punctuation">)</span>
<span class="token comment"># l: [Chuck Norris, Jon Skeet, John Cena]</span>
l<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span><span class="token keyword">lambda</span> item<span class="token punctuation">:</span> item<span class="token punctuation">.</span>height<span class="token punctuation">)</span>
<span class="token comment"># l: [John Cena, Chuck Norris, Jon Skeet]</span>
</code></pre></div><p>In case of list of dicts the concept is the same:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">import</span> datetime
l <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span><span class="token string">'John Cena'</span><span class="token punctuation">,</span> <span class="token string">'birthday'</span><span class="token punctuation">:</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1992</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token string">'height'</span><span class="token punctuation">:</span> <span class="token number">175</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span> <span class="token string">'Chuck Norris'</span><span class="token punctuation">,</span> <span class="token string">'birthday'</span><span class="token punctuation">:</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1990</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">28</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token string">'height'</span><span class="token punctuation">:</span> <span class="token number">180</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span> <span class="token string">'Jon Skeet'</span><span class="token punctuation">,</span> <span class="token string">'birthday'</span><span class="token punctuation">:</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1991</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string">'height'</span><span class="token punctuation">:</span> <span class="token number">185</span><span class="token punctuation">}</span><span class="token punctuation">]</span>
l<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span><span class="token keyword">lambda</span> item<span class="token punctuation">:</span> item<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment"># l: [Chuck Norris, John Cena, Jon Skeet]</span>
l<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span><span class="token keyword">lambda</span> item<span class="token punctuation">:</span> item<span class="token punctuation">[</span><span class="token string">'birthday'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment"># l: [Chuck Norris, Jon Skeet, John Cena]</span>
l<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span><span class="token keyword">lambda</span> item<span class="token punctuation">:</span> item<span class="token punctuation">[</span><span class="token string">'height'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment"># l: [John Cena, Chuck Norris, Jon Skeet]</span>
</code></pre></div><p>Sort by sub dict :</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">import</span> datetime
l <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span><span class="token string">'John Cena'</span><span class="token punctuation">,</span> <span class="token string">'birthday'</span><span class="token punctuation">:</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1992</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token string">'size'</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">'height'</span><span class="token punctuation">:</span> <span class="token number">175</span><span class="token punctuation">,</span> <span class="token string">'weight'</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span> <span class="token string">'Chuck Norris'</span><span class="token punctuation">,</span> <span class="token string">'birthday'</span><span class="token punctuation">:</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1990</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">28</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token string">'size'</span> <span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">'height'</span><span class="token punctuation">:</span> <span class="token number">180</span><span class="token punctuation">,</span> <span class="token string">'weight'</span><span class="token punctuation">:</span> <span class="token number">90</span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span> <span class="token string">'Jon Skeet'</span><span class="token punctuation">,</span> <span class="token string">'birthday'</span><span class="token punctuation">:</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1991</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string">'size'</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">'height'</span><span class="token punctuation">:</span> <span class="token number">185</span><span class="token punctuation">,</span> <span class="token string">'weight'</span><span class="token punctuation">:</span> <span class="token number">110</span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">]</span>
l<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span><span class="token keyword">lambda</span> item<span class="token punctuation">:</span> item<span class="token punctuation">[</span><span class="token string">'size'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">'height'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment"># l: [John Cena, Chuck Norris, Jon Skeet]</span>
</code></pre></div></li> <p><strong>Better way to sort using <code>attrgetter</code> and <code>itemgetter</code></strong></p> <p>Lists can also be sorted using <code>attrgetter</code> and <code>itemgetter</code> functions from the operator module. These can help improve readability and reusability. Here are some examples,</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">from</span> operator <span class="token keyword">import</span> itemgetter<span class="token punctuation">,</span>attrgetter
people <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span><span class="token string">'chandan'</span><span class="token punctuation">,</span><span class="token string">'age'</span><span class="token punctuation">:</span><span class="token number">20</span><span class="token punctuation">,</span><span class="token string">'salary'</span><span class="token punctuation">:</span><span class="token number">2000</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span><span class="token string">'chetan'</span><span class="token punctuation">,</span><span class="token string">'age'</span><span class="token punctuation">:</span><span class="token number">18</span><span class="token punctuation">,</span><span class="token string">'salary'</span><span class="token punctuation">:</span><span class="token number">5000</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token string">'name'</span><span class="token punctuation">:</span><span class="token string">'guru'</span><span class="token punctuation">,</span><span class="token string">'age'</span><span class="token punctuation">:</span><span class="token number">30</span><span class="token punctuation">,</span><span class="token string">'salary'</span><span class="token punctuation">:</span><span class="token number">3000</span><span class="token punctuation">}</span><span class="token punctuation">]</span>
by_age <span class="token operator">=</span> itemgetter<span class="token punctuation">(</span><span class="token string">'age'</span><span class="token punctuation">)</span>
by_salary <span class="token operator">=</span> itemgetter<span class="token punctuation">(</span><span class="token string">'salary'</span><span class="token punctuation">)</span>
people<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span>by_age<span class="token punctuation">)</span> <span class="token comment">#in-place sorting by age</span>
people<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span>by_salary<span class="token punctuation">)</span> <span class="token comment">#in-place sorting by salary</span>
</code></pre></div><p><code>itemgetter</code> can also be given an index. This is helpful if you want to sort based on indices of a tuple.</p> <div class="language-py extra-class"><pre class="language-py"><code>list_of_tuples <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
list_of_tuples<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span>itemgetter<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>list_of_tuples<span class="token punctuation">)</span> <span class="token comment">#[(5, 0), (1, 2), (3, 4)]</span>
</code></pre></div><p>Use the <code>attrgetter</code> if you want to sort by attributes of an object,</p> <div class="language-py extra-class"><pre class="language-py"><code>persons <span class="token operator">=</span> <span class="token punctuation">[</span>Person<span class="token punctuation">(</span><span class="token string">"John Cena"</span><span class="token punctuation">,</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1992</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">175</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
Person<span class="token punctuation">(</span><span class="token string">"Chuck Norris"</span><span class="token punctuation">,</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1990</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">28</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">180</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
Person<span class="token punctuation">(</span><span class="token string">"Jon Skeet"</span><span class="token punctuation">,</span> datetime<span class="token punctuation">.</span>date<span class="token punctuation">(</span><span class="token number">1991</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">185</span><span class="token punctuation">)</span><span class="token punctuation">]</span> <span class="token comment">#reusing Person class from above example</span>
person<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span>attrgetter<span class="token punctuation">(</span><span class="token string">'name'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">#sort by name</span>
by_birthday <span class="token operator">=</span> attrgetter<span class="token punctuation">(</span><span class="token string">'birthday'</span><span class="token punctuation">)</span>
person<span class="token punctuation">.</span>sort<span class="token punctuation">(</span>key<span class="token operator">=</span>by_birthday<span class="token punctuation">)</span> <span class="token comment">#sort by birthday</span>
</code></pre></div><li>
`clear()` – removes all items from the list
<div class="language-py extra-class"><pre class="language-py"><code>a<span class="token punctuation">.</span>clear<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># a = []</span>
</code></pre></div></li> <li>
**Replication** – multiplying an existing list by an integer will produce a larger list consisting of that many copies of the original. This can be useful for example for list initialization:
<div class="language-py extra-class"><pre class="language-py"><code>b <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"blah"</span><span class="token punctuation">]</span> <span class="token operator">*</span> <span class="token number">3</span>
<span class="token comment"># b = ["blah", "blah", "blah"]</span>
b <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">]</span> <span class="token operator">*</span> <span class="token number">5</span>
<span class="token comment"># [1, 3, 5, 1, 3, 5, 1, 3, 5, 1, 3, 5, 1, 3, 5]</span>
</code></pre></div><p>Take care doing this if your list contains references to objects (eg a list of lists), see <a href="http://stackoverflow.com/documentation/python/3553/common-pitfalls/12259/list-multiplication-and-common-references#t=201607282214343131018" target="_blank" rel="noopener noreferrer">Common Pitfalls - List multiplication and common references<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.
</p></li> <li><strong>Element deletion</strong> – it is possible to delete multiple elements in the list using the <code>del</code> keyword and slice notation:<p></p> <div class="language-py extra-class"><pre class="language-py"><code>a <span class="token operator">=</span> <span class="token builtin">list</span><span class="token punctuation">(</span><span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">del</span> a<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token number">2</span><span class="token punctuation">]</span>
<span class="token comment"># a = [1, 3, 5, 7, 9]</span>
<span class="token keyword">del</span> a<span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
<span class="token comment"># a = [1, 3, 5, 7]</span>
<span class="token keyword">del</span> a<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">]</span>
<span class="token comment"># a = []</span>
</code></pre></div></li> <li>
**Copying**
The default assignment "=" assigns a reference of the original list to the new name. That is, the original name and new name are both pointing to the same list object. Changes made through any of them will be reflected in another. This is often not what you intended.
<div class="language-py extra-class"><pre class="language-py"><code>b <span class="token operator">=</span> a
a<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">)</span>
<span class="token comment"># b: [1, 2, 3, 4, 5, 6]</span>
</code></pre></div><p>If you want to create a copy of the list you have below options.
You can slice it:</p> <div class="language-py extra-class"><pre class="language-py"><code>new_list <span class="token operator">=</span> old_list<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">]</span>
</code></pre></div><p>You can use the built in list() function:</p> <div class="language-py extra-class"><pre class="language-py"><code>new_list <span class="token operator">=</span> <span class="token builtin">list</span><span class="token punctuation">(</span>old_list<span class="token punctuation">)</span>
</code></pre></div><p>You can use generic copy.copy():</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">import</span> copy
new_list <span class="token operator">=</span> copy<span class="token punctuation">.</span>copy<span class="token punctuation">(</span>old_list<span class="token punctuation">)</span> <span class="token comment">#inserts references to the objects found in the original.</span>
</code></pre></div><p>This is a little slower than list() because it has to find out the datatype of old_list first.
If the list contains objects and you want to copy them as well, use generic copy.deepcopy():</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">import</span> copy
new_list <span class="token operator">=</span> copy<span class="token punctuation">.</span>deepcopy<span class="token punctuation">(</span>old_list<span class="token punctuation">)</span> <span class="token comment">#inserts copies of the objects found in the original.</span>
</code></pre></div><p>Obviously the slowest and most memory-needing method, but sometimes unavoidable.
</p></li><p></p> <p><code>copy()</code> – Returns a shallow copy of the list</p> <div class="language- extra-class"><pre class="language-text"><code>
aa = a.copy()
# aa = [1, 2, 3, 4, 5]
</code></pre></div><h2 id="accessing-list-values"><a href="#accessing-list-values" class="header-anchor">#</a> Accessing list values</h2> <p>Python lists are zero-indexed, and act like arrays in other languages.</p> <div class="language-py extra-class"><pre class="language-py"><code>lst <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">]</span>
lst<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token comment"># 1</span>
lst<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># 2</span>
</code></pre></div><p>Attempting to access an index outside the bounds of the list will raise an <code>IndexError</code>.</p> <div class="language-py extra-class"><pre class="language-py"><code>lst<span class="token punctuation">[</span><span class="token number">4</span><span class="token punctuation">]</span> <span class="token comment"># IndexError: list index out of range</span>
</code></pre></div><p>Negative indices are interpreted as counting from the <strong>end</strong> of the list.</p> <div class="language-py extra-class"><pre class="language-py"><code>lst<span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># 4</span>
lst<span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># 3</span>
lst<span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">5</span><span class="token punctuation">]</span> <span class="token comment"># IndexError: list index out of range</span>
</code></pre></div><p>This is functionally equivalent to</p> <div class="language-py extra-class"><pre class="language-py"><code>lst<span class="token punctuation">[</span><span class="token builtin">len</span><span class="token punctuation">(</span>lst<span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># 4</span>
</code></pre></div><p>Lists allow to use <strong>slice notation</strong> as <code>lst[start:end:step]</code>. The output of the slice notation is a new list containing elements from index <code>start</code> to <code>end-1</code>. If options are omitted <code>start</code> defaults to beginning of list, <code>end</code> to end of list and <code>step</code> to 1:</p> <div class="language-py extra-class"><pre class="language-py"><code>lst<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token punctuation">]</span> <span class="token comment"># [2, 3, 4]</span>
lst<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token number">3</span><span class="token punctuation">]</span> <span class="token comment"># [1, 2, 3]</span>
lst<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># [1, 3]</span>
lst<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># [4, 3, 2, 1] </span>
lst<span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># [4, 3, 2]</span>
lst<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">:</span><span class="token number">8</span><span class="token punctuation">]</span> <span class="token comment"># [] since starting index is greater than length of lst, returns empty list</span>
lst<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token number">10</span><span class="token punctuation">]</span> <span class="token comment"># [2, 3, 4] same as omitting ending index</span>
</code></pre></div><p>With this in mind, you can print a reversed version of the list by calling</p> <div class="language-py extra-class"><pre class="language-py"><code>lst<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># [4, 3, 2, 1]</span>
</code></pre></div><p>When using step lengths of negative amounts, the starting index has to be greater than the ending index otherwise the result will be an empty list.</p> <div class="language-py extra-class"><pre class="language-py"><code>lst<span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">:</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># [4, 3]</span>
</code></pre></div><p>Using negative step indices are equivalent to the following code:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token builtin">reversed</span><span class="token punctuation">(</span>lst<span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">:</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># 0 = 1 -1</span>
<span class="token comment"># 2 = 3 -1</span>
</code></pre></div><p>The indices used are 1 less than those used in negative indexing and are reversed.</p> <p><strong>Advanced slicing</strong></p> <p>When lists are sliced the <code>__getitem__()</code> method of the list object is called, with a <code>slice</code> object. Python has a builtin slice method to generate slice objects. We can use this to <strong>store</strong> a slice and reuse it later like so,</p> <div class="language-py extra-class"><pre class="language-py"><code>data <span class="token operator">=</span> <span class="token string">'chandan purohit 22 2000'</span> <span class="token comment">#assuming data fields of fixed length </span>
name_slice <span class="token operator">=</span> <span class="token builtin">slice</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">19</span><span class="token punctuation">)</span>
age_slice <span class="token operator">=</span> <span class="token builtin">slice</span><span class="token punctuation">(</span><span class="token number">19</span><span class="token punctuation">,</span><span class="token number">21</span><span class="token punctuation">)</span>
salary_slice <span class="token operator">=</span> <span class="token builtin">slice</span><span class="token punctuation">(</span><span class="token number">22</span><span class="token punctuation">,</span><span class="token boolean">None</span><span class="token punctuation">)</span>
<span class="token comment">#now we can have more readable slices</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>data<span class="token punctuation">[</span>name_slice<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment">#chandan purohit </span>
<span class="token keyword">print</span><span class="token punctuation">(</span>data<span class="token punctuation">[</span>age_slice<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment">#'22'</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>data<span class="token punctuation">[</span>salary_slice<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment">#'2000'</span>
</code></pre></div><p>This can be of great use by providing slicing functionality to our objects by overriding <code>__getitem__</code> in our class.</p> <h2 id="checking-if-list-is-empty"><a href="#checking-if-list-is-empty" class="header-anchor">#</a> Checking if list is empty</h2> <p>The emptiness of a list is associated to the boolean <code>False</code>, so you don't have to check <code>len(lst) == 0</code>, but just <code>lst</code> or <code>not lst</code></p> <div class="language-py extra-class"><pre class="language-py"><code>lst <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> lst<span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"list is empty"</span><span class="token punctuation">)</span>
<span class="token comment"># Output: list is empty</span>
</code></pre></div><h2 id="iterating-over-a-list"><a href="#iterating-over-a-list" class="header-anchor">#</a> Iterating over a list</h2> <p>Python supports using a <code>for</code> loop directly on a list:</p> <div class="language-py extra-class"><pre class="language-py"><code>my_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string">'bar'</span><span class="token punctuation">,</span> <span class="token string">'baz'</span><span class="token punctuation">]</span>
<span class="token keyword">for</span> item <span class="token keyword">in</span> my_list<span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>item<span class="token punctuation">)</span>
<span class="token comment"># Output: foo</span>
<span class="token comment"># Output: bar</span>
<span class="token comment"># Output: baz</span>
</code></pre></div><p>You can also get the position of each item at the same time:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">for</span> <span class="token punctuation">(</span>index<span class="token punctuation">,</span> item<span class="token punctuation">)</span> <span class="token keyword">in</span> <span class="token builtin">enumerate</span><span class="token punctuation">(</span>my_list<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">'The item in position {} is: {}'</span><span class="token punctuation">.</span><span class="token builtin">format</span><span class="token punctuation">(</span>index<span class="token punctuation">,</span> item<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment"># Output: The item in position 0 is: foo</span>
<span class="token comment"># Output: The item in position 1 is: bar</span>
<span class="token comment"># Output: The item in position 2 is: baz</span>
</code></pre></div><p>The other way of iterating a list based on the index value:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token builtin">len</span><span class="token punctuation">(</span>my_list<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>my_list<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment">#output:</span>
<span class="token operator">>></span><span class="token operator">></span>
foo
bar
baz
</code></pre></div><p>Note that changing items in a list while iterating on it may have unexpected results:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">for</span> item <span class="token keyword">in</span> my_list<span class="token punctuation">:</span>
<span class="token keyword">if</span> item <span class="token operator">==</span> <span class="token string">'foo'</span><span class="token punctuation">:</span>
<span class="token keyword">del</span> my_list<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>item<span class="token punctuation">)</span>
<span class="token comment"># Output: foo</span>
<span class="token comment"># Output: baz</span>
</code></pre></div><p>In this last example, we deleted the first item at the first iteration, but that caused <code>bar</code> to be skipped.</p> <h2 id="checking-whether-an-item-is-in-a-list"><a href="#checking-whether-an-item-is-in-a-list" class="header-anchor">#</a> Checking whether an item is in a list</h2> <p>Python makes it very simple to check whether an item is in a list. Simply use the <code>in</code> operator.</p> <div class="language-py extra-class"><pre class="language-py"><code>lst <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'test'</span><span class="token punctuation">,</span> <span class="token string">'twest'</span><span class="token punctuation">,</span> <span class="token string">'tweast'</span><span class="token punctuation">,</span> <span class="token string">'treast'</span><span class="token punctuation">]</span>
<span class="token string">'test'</span> <span class="token keyword">in</span> lst
<span class="token comment"># Out: True</span>
<span class="token string">'toast'</span> <span class="token keyword">in</span> lst
<span class="token comment"># Out: False</span>
</code></pre></div><blockquote></blockquote> <p>Note: the <code>in</code> operator on sets is asymptotically faster than on lists. If you need to use it many times on potentially large lists, you may want to convert your <code>list</code> to a <code>set</code>, and test the presence of elements on the <code>set</code>.</p> <div class="language-py extra-class"><pre class="language-py"><code>slst <span class="token operator">=</span> <span class="token builtin">set</span><span class="token punctuation">(</span>lst<span class="token punctuation">)</span>
<span class="token string">'test'</span> <span class="token keyword">in</span> slst
<span class="token comment"># Out: True</span>
</code></pre></div><h2 id="any-and-all"><a href="#any-and-all" class="header-anchor">#</a> Any and All</h2> <p>You can use <code>all()</code> to determine if all the values in an iterable evaluate to True</p> <div class="language-py extra-class"><pre class="language-py"><code>nums <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">]</span>
<span class="token builtin">all</span><span class="token punctuation">(</span>nums<span class="token punctuation">)</span>
<span class="token comment"># False</span>
chars <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token string">'b'</span><span class="token punctuation">,</span> <span class="token string">'c'</span><span class="token punctuation">,</span> <span class="token string">'d'</span><span class="token punctuation">]</span>
<span class="token builtin">all</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span>
<span class="token comment"># True</span>
</code></pre></div><p>Likewise, <code>any()</code> determines if one or more values in an iterable evaluate to True</p> <div class="language-py extra-class"><pre class="language-py"><code>nums <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">]</span>
<span class="token builtin">any</span><span class="token punctuation">(</span>nums<span class="token punctuation">)</span>
<span class="token comment"># True</span>
vals <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token boolean">False</span><span class="token punctuation">]</span>
<span class="token builtin">any</span><span class="token punctuation">(</span>vals<span class="token punctuation">)</span>
<span class="token comment"># False</span>
</code></pre></div><p>While this example uses a list, it is important to note these built-ins work with any iterable, including generators.</p> <div class="language-py extra-class"><pre class="language-py"><code>vals <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">]</span>
<span class="token builtin">any</span><span class="token punctuation">(</span>val <span class="token operator">></span> <span class="token number">12</span> <span class="token keyword">for</span> val <span class="token keyword">in</span> vals<span class="token punctuation">)</span>
<span class="token comment"># False</span>
<span class="token builtin">any</span><span class="token punctuation">(</span><span class="token punctuation">(</span>val <span class="token operator">*</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">6</span> <span class="token keyword">for</span> val <span class="token keyword">in</span> vals<span class="token punctuation">)</span>
<span class="token comment"># True</span>
</code></pre></div><h2 id="length-of-a-list"><a href="#length-of-a-list" class="header-anchor">#</a> Length of a list</h2> <p>Use <code>len()</code> to get the one-dimensional length of a list.</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token builtin">len</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'one'</span><span class="token punctuation">,</span> <span class="token string">'two'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># returns 2</span>
<span class="token builtin">len</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'one'</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token string">'four'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># returns 3, not 4</span>
</code></pre></div><p><code>len()</code> also works on strings, dictionaries, and other data structures similar to lists.</p> <p>Note that <code>len()</code> is a built-in function, not a method of a list object.</p> <p>Also note that the cost of <code>len()</code> is <code>O(1)</code>, meaning it will take the same amount of time to get the length of a list regardless of its length.</p> <h2 id="reversing-list-elements"><a href="#reversing-list-elements" class="header-anchor">#</a> Reversing list elements</h2> <p>You can use the <code>reversed</code> function which returns an iterator to the reversed list:</p> <div class="language-py extra-class"><pre class="language-py"><code>In <span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">:</span> rev <span class="token operator">=</span> <span class="token builtin">reversed</span><span class="token punctuation">(</span>numbers<span class="token punctuation">)</span>
In <span class="token punctuation">[</span><span class="token number">4</span><span class="token punctuation">]</span><span class="token punctuation">:</span> rev
Out<span class="token punctuation">[</span><span class="token number">4</span><span class="token punctuation">]</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">]</span>
</code></pre></div><p>Note that the list "numbers" remains unchanged by this operation, and remains in the same order it was originally.</p> <p>To reverse in place, you can also use <a href="http://stackoverflow.com/documentation/python/209/list/2035/list-support-operations#t=201607230923043603753" target="_blank" rel="noopener noreferrer">the <code>reverse</code> method<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <p>You can also reverse a list (actually obtaining a copy, the original list is unaffected) by using the slicing syntax, setting the third argument (the step) as -1:</p> <div class="language-py extra-class"><pre class="language-py"><code>In <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">:</span> numbers <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">]</span>
In <span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">:</span> numbers<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
Out<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">]</span>
</code></pre></div><h2 id="concatenate-and-merge-lists"><a href="#concatenate-and-merge-lists" class="header-anchor">#</a> Concatenate and Merge lists</h2> <li>
**The simplest way to concatenate** `list1` and `list2`:
<div class="language-py extra-class"><pre class="language-py"><code>merged <span class="token operator">=</span> list1 <span class="token operator">+</span> list2
</code></pre></div></li> <li>
**`zip` returns a list of tuples**, where the i-th tuple contains the i-th element from each of the argument sequences or iterables:
<div class="language-py extra-class"><pre class="language-py"><code>alist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'a1'</span><span class="token punctuation">,</span> <span class="token string">'a2'</span><span class="token punctuation">,</span> <span class="token string">'a3'</span><span class="token punctuation">]</span>
blist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'b1'</span><span class="token punctuation">,</span> <span class="token string">'b2'</span><span class="token punctuation">,</span> <span class="token string">'b3'</span><span class="token punctuation">]</span>
<span class="token keyword">for</span> a<span class="token punctuation">,</span> b <span class="token keyword">in</span> <span class="token builtin">zip</span><span class="token punctuation">(</span>alist<span class="token punctuation">,</span> blist<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span>
<span class="token comment"># Output:</span>
<span class="token comment"># a1 b1</span>
<span class="token comment"># a2 b2</span>
<span class="token comment"># a3 b3</span>
</code></pre></div><p>If the lists have different lengths then the result will include only as many elements as the shortest one:</p> <div class="language-py extra-class"><pre class="language-py"><code>alist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'a1'</span><span class="token punctuation">,</span> <span class="token string">'a2'</span><span class="token punctuation">,</span> <span class="token string">'a3'</span><span class="token punctuation">]</span>
blist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'b1'</span><span class="token punctuation">,</span> <span class="token string">'b2'</span><span class="token punctuation">,</span> <span class="token string">'b3'</span><span class="token punctuation">,</span> <span class="token string">'b4'</span><span class="token punctuation">]</span>
<span class="token keyword">for</span> a<span class="token punctuation">,</span> b <span class="token keyword">in</span> <span class="token builtin">zip</span><span class="token punctuation">(</span>alist<span class="token punctuation">,</span> blist<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span>
<span class="token comment"># Output:</span>
<span class="token comment"># a1 b1</span>
<span class="token comment"># a2 b2</span>
<span class="token comment"># a3 b3</span>
alist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
<span class="token builtin">len</span><span class="token punctuation">(</span><span class="token builtin">list</span><span class="token punctuation">(</span><span class="token builtin">zip</span><span class="token punctuation">(</span>alist<span class="token punctuation">,</span> blist<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment"># Output:</span>
<span class="token comment"># 0</span>
</code></pre></div><p>For padding lists of unequal length to the longest one with <code>None</code>s use <code>itertools.zip_longest</code> (<code>itertools.izip_longest</code> in Python 2)</p> <div class="language-py extra-class"><pre class="language-py"><code>alist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'a1'</span><span class="token punctuation">,</span> <span class="token string">'a2'</span><span class="token punctuation">,</span> <span class="token string">'a3'</span><span class="token punctuation">]</span>
blist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'b1'</span><span class="token punctuation">]</span>
clist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'c1'</span><span class="token punctuation">,</span> <span class="token string">'c2'</span><span class="token punctuation">,</span> <span class="token string">'c3'</span><span class="token punctuation">,</span> <span class="token string">'c4'</span><span class="token punctuation">]</span>
<span class="token keyword">for</span> a<span class="token punctuation">,</span>b<span class="token punctuation">,</span>c <span class="token keyword">in</span> itertools<span class="token punctuation">.</span>zip_longest<span class="token punctuation">(</span>alist<span class="token punctuation">,</span> blist<span class="token punctuation">,</span> clist<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">,</span> c<span class="token punctuation">)</span>
<span class="token comment"># Output: </span>
<span class="token comment"># a1 b1 c1</span>
<span class="token comment"># a2 None c2</span>
<span class="token comment"># a3 None c3</span>
<span class="token comment"># None None c4</span>
</code></pre></div></li> <li>
**Insert to a specific index values:**
<div class="language-py extra-class"><pre class="language-py"><code> alist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">123</span><span class="token punctuation">,</span> <span class="token string">'xyz'</span><span class="token punctuation">,</span> <span class="token string">'zara'</span><span class="token punctuation">,</span> <span class="token string">'abc'</span><span class="token punctuation">]</span>
alist<span class="token punctuation">.</span>insert<span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">2009</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Final List :"</span><span class="token punctuation">,</span> alist<span class="token punctuation">)</span>
</code></pre></div><p>Output:</p> <div class="language-py extra-class"><pre class="language-py"><code> Final List <span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token number">123</span><span class="token punctuation">,</span> <span class="token string">'xyz'</span><span class="token punctuation">,</span> <span class="token string">'zara'</span><span class="token punctuation">,</span> <span class="token number">2009</span><span class="token punctuation">,</span> <span class="token string">'abc'</span><span class="token punctuation">]</span>
</code></pre></div></li> <h2 id="remove-duplicate-values-in-list"><a href="#remove-duplicate-values-in-list" class="header-anchor">#</a> Remove duplicate values in list</h2> <p>Removing duplicate values in a list can be done by converting the list to a <code>set</code> (that is an unordered collection of distinct objects). If a <code>list</code> data structure is needed, then the set can be converted back to a list using the function <code>list()</code>:</p> <div class="language-py extra-class"><pre class="language-py"><code>names <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"aixk"</span><span class="token punctuation">,</span> <span class="token string">"duke"</span><span class="token punctuation">,</span> <span class="token string">"edik"</span><span class="token punctuation">,</span> <span class="token string">"tofp"</span><span class="token punctuation">,</span> <span class="token string">"duke"</span><span class="token punctuation">]</span>
<span class="token builtin">list</span><span class="token punctuation">(</span><span class="token builtin">set</span><span class="token punctuation">(</span>names<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment"># Out: ['duke', 'tofp', 'aixk', 'edik']</span>
</code></pre></div><p>Note that by converting a list to a set the original ordering is lost.</p> <p>To preserve the order of the list one can use an <code>OrderedDict</code></p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">import</span> collections
<span class="token operator">>></span><span class="token operator">></span> collections<span class="token punctuation">.</span>OrderedDict<span class="token punctuation">.</span>fromkeys<span class="token punctuation">(</span>names<span class="token punctuation">)</span><span class="token punctuation">.</span>keys<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># Out: ['aixk', 'duke', 'edik', 'tofp']</span>
</code></pre></div><h2 id="comparison-of-lists"><a href="#comparison-of-lists" class="header-anchor">#</a> Comparison of lists</h2> <p>It's possible to compare lists and other sequences lexicographically using comparison operators. Both operands must be of the same type.</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span> <span class="token operator"><</span> <span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span>
<span class="token comment"># True, because 1 < 2</span>
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span> <span class="token operator"><</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span>
<span class="token comment"># False, because the lists are equal</span>
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span> <span class="token operator"><=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span>
<span class="token comment"># True, because the lists are equal</span>
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span> <span class="token operator"><</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">101</span><span class="token punctuation">]</span>
<span class="token comment"># True, because 100 < 101</span>
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span> <span class="token operator"><</span> <span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span>
<span class="token comment"># False, because 0 < 1</span>
</code></pre></div><p>If one of the lists is contained at the start of the other, the shortest list wins.</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">]</span> <span class="token operator"><</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">]</span>
<span class="token comment"># True</span>
</code></pre></div><h2 id="accessing-values-in-nested-list"><a href="#accessing-values-in-nested-list" class="header-anchor">#</a> Accessing values in nested list</h2> <p>Starting with a three-dimensional list:</p> <div class="language-py extra-class"><pre class="language-py"><code>alist <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">6</span><span class="token punctuation">,</span><span class="token number">7</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token punctuation">[</span><span class="token number">8</span><span class="token punctuation">,</span><span class="token number">9</span><span class="token punctuation">,</span><span class="token number">10</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">12</span><span class="token punctuation">,</span> <span class="token number">13</span><span class="token punctuation">,</span> <span class="token number">14</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
</code></pre></div><p>Accessing items in the list:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">print</span><span class="token punctuation">(</span>alist<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment">#2</span>
<span class="token comment">#Accesses second element in the first list in the first list</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>alist<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment">#10</span>
<span class="token comment">#Accesses the third element in the second list in the second list</span>
</code></pre></div><p>Performing support operations:</p> <div class="language-py extra-class"><pre class="language-py"><code>alist<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>alist<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment">#11</span>
<span class="token comment">#Appends 11 to the end of the first list in the first list</span>
</code></pre></div><p>Using nested for loops to print the list:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">for</span> row <span class="token keyword">in</span> alist<span class="token punctuation">:</span> <span class="token comment">#One way to loop through nested lists</span>
<span class="token keyword">for</span> col <span class="token keyword">in</span> row<span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>col<span class="token punctuation">)</span>
<span class="token comment">#[1, 2, 11]</span>
<span class="token comment">#[3, 4]</span>
<span class="token comment">#[5, 6, 7]</span>
<span class="token comment">#[8, 9, 10]</span>
<span class="token comment">#[12, 13, 14]</span>
</code></pre></div><p>Note that this operation can be used in a list comprehension or even as a generator to produce efficiencies, e.g.:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token punctuation">[</span>col <span class="token keyword">for</span> row <span class="token keyword">in</span> alist <span class="token keyword">for</span> col <span class="token keyword">in</span> row<span class="token punctuation">]</span>
<span class="token comment">#[[1, 2, 11], [3, 4], [5, 6, 7], [8, 9, 10], [12, 13, 14]]</span>
</code></pre></div><p>Not all items in the outer lists have to be lists themselves:</p> <div class="language-py extra-class"><pre class="language-py"><code>alist<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">.</span>insert<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">15</span><span class="token punctuation">)</span>
<span class="token comment">#Inserts 15 into the third position in the second list</span>
</code></pre></div><p>Another way to use nested for loops. The other way is better but I've needed to use this on occasion:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">for</span> row <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token builtin">len</span><span class="token punctuation">(</span>alist<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token comment">#A less Pythonic way to loop through lists</span>
<span class="token keyword">for</span> col <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token builtin">len</span><span class="token punctuation">(</span>alist<span class="token punctuation">[</span>row<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>alist<span class="token punctuation">[</span>row<span class="token punctuation">]</span><span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment">#[1, 2, 11]</span>
<span class="token comment">#[3, 4]</span>
<span class="token comment">#[5, 6, 7]</span>
<span class="token comment">#[8, 9, 10]</span>
<span class="token comment">#15</span>
<span class="token comment">#[12, 13, 14]</span>
</code></pre></div><p>Using slices in nested list:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">print</span><span class="token punctuation">(</span>alist<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment">#[[8, 9, 10], 15, [12, 13, 14]]</span>
<span class="token comment">#Slices still work</span>
</code></pre></div><p>The final list:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token keyword">print</span><span class="token punctuation">(</span>alist<span class="token punctuation">)</span>
<span class="token comment">#[[[1, 2, 11], [3, 4]], [[5, 6, 7], [8, 9, 10], 15, [12, 13, 14]]]</span>
</code></pre></div><h2 id="initializing-a-list-to-a-fixed-number-of-elements"><a href="#initializing-a-list-to-a-fixed-number-of-elements" class="header-anchor">#</a> Initializing a List to a Fixed Number of Elements</h2> <p>For <strong>immutable</strong> elements (e.g. <code>None</code>, string literals etc.):</p> <div class="language-py extra-class"><pre class="language-py"><code>my_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token boolean">None</span><span class="token punctuation">]</span> <span class="token operator">*</span> <span class="token number">10</span>
my_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'test'</span><span class="token punctuation">]</span> <span class="token operator">*</span> <span class="token number">10</span>
</code></pre></div><p>For <strong>mutable</strong> elements, the same construct will result in all elements of the list referring to the same object, for example, for a set:</p> <div class="language-py extra-class"><pre class="language-py"><code><span class="token operator">>></span><span class="token operator">></span> my_list<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">]</span> <span class="token operator">*</span> <span class="token number">10</span>
<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">print</span><span class="token punctuation">(</span>my_list<span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">]</span>
<span class="token operator">>></span><span class="token operator">></span> my_list<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>add<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">print</span><span class="token punctuation">(</span>my_list<span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">]</span>
</code></pre></div><p>Instead, to initialize the list with a fixed number of <strong>different mutable</strong> objects, use:</p> <div class="language-py extra-class"><pre class="language-py"><code>my_list<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">}</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
</code></pre></div><h4 id="syntax"><a href="#syntax" class="header-anchor">#</a> Syntax</h4> <ul><li>[value, value, ...]</li> <li>list([iterable])</li></ul> <h4 id="remarks"><a href="#remarks" class="header-anchor">#</a> Remarks</h4> <p><code>list</code> is a particular type of iterable, but it is not the only one that exists in Python. Sometimes it will be better to use <a href="http://stackoverflow.com/documentation/python/497/sets#t=201607211317316532895" target="_blank" rel="noopener noreferrer"><code>set</code><span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>, <a href="http://stackoverflow.com/documentation/python/927/tuples#t=201607211317041618066" target="_blank" rel="noopener noreferrer"><code>tuple</code><span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>, or <a href="http://stackoverflow.com/documentation/python/396/dictionary#t=201607211316251118713" target="_blank" rel="noopener noreferrer"><code>dictionary</code><span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <p><code>list</code> is the name given in Python to dynamic arrays (similar to <code>vector<void*></code> from C++ or Java's <code>ArrayList<Object></code>). It is not a linked-list.</p> <p>Accessing elements is done in constant time and is very fast. Appending elements to the end of the list is amortized constant time, but once in a while it might involve allocation and copying of the whole <code>list</code>.</p> <p><a href="https://stackoverflow.com/documentation/python/5265/list-comprehensions#t=201608171354111236074" target="_blank" rel="noopener noreferrer">List comprehensions<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> are related to lists.</p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/devtut/generate/edit/master/docs/python/list.md" target="_blank" rel="noopener noreferrer">Edit this page on GitHub</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
←
<a href="/python/dictionary.html" class="prev">
Dictionary
</a></span> <span class="next"><a href="/python/list-comprehensions.html">
List Comprehensions
</a>
→
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.1779e102.js" defer></script><script src="/assets/js/3.2cfa8016.js" defer></script><script src="/assets/js/2739.fba3ea7e.js" defer></script>
</body>
</html>