Sử dụng danh sách hiểu biết:
In [24]: s = ['ABC','DEF','GHI','JKL']
In [25]: lis=[list[x] for x in s]
In [26]: lis
Out[26]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
hoặc sử dụng
first and last: 1 7
5:In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
Nghĩa trang phần mềm: Lưu trữ nhiều giá trị trong danh sách
Bài học này lưu trữ nhiều giá trị trong danh sách, là bài học 03 từ nghề mộc phần mềm [lập trình với Python, 2016].[“Programming with Python” 2016].
Tổng quan:
Câu hỏi
- Làm thế nào tôi có thể lưu trữ nhiều giá trị cùng nhau?
Mục tiêu
- Giải thích danh sách là gì.
- Tạo và chỉ mục danh sách các giá trị đơn giản.
Tóm tắt điểm chính
6 tạo ra một danh sách.first and last: 1 7
- Danh sách được lập chỉ mục và cắt theo cách tương tự như chuỗi và mảng.
- Danh sách có thể thay đổi [nghĩa là, giá trị của chúng có thể được thay đổi tại chỗ].mutable [i.e., their values can be changed in place].
- Chuỗi là bất biến [nghĩa là, các ký tự trong chúng không thể thay đổi].immutable [i.e., the characters in them cannot be changed].
Cũng giống như một vòng lặp là một cách để thực hiện các hoạt động nhiều lần, một danh sách là một cách để lưu trữ nhiều giá trị. Không giống như các mảng Numpy, các danh sách được tích hợp vào ngôn ngữ [vì vậy chúng tôi không phải tải một thư viện để sử dụng chúng].
Tạo danh sách:
Chúng tôi tạo một danh sách bằng cách đặt các giá trị bên trong dấu ngoặc vuông:
odds = [1, 3, 5, 7]
print['odds are:', odds]
['odds are:', [1, 3, 5, 7]]
Danh sách chỉ mục
Đến bây giờ, chúng ta biết rằng Python thích bắt đầu đếm bằng 0
first and last: 1 7
7 là mục đầu tiên của Cameron như chúng ta đã thấy trước đây với first and last: 1 7
8 chẳng hạn.Theo cách tương tự, các mục trong danh sách được lập chỉ mục bắt đầu bằng 0
first and last: 1 7
7; Mục cuối cùng được tham chiếu là for number in odds:
print[number]
0.print['first and last:', odds[0], odds[-1]]
first and last: 1 7
Và nếu chúng ta lặp qua một danh sách, biến vòng lặp được gán các phần tử một lần:
for number in odds:
print[number]
1
3
5
7
Có một sự khác biệt quan trọng giữa danh sách và chuỗi: chúng ta có thể thay đổi các giá trị trong danh sách, nhưng chúng ta không thể thay đổi các ký tự riêng lẻ trong một chuỗi. Ví dụ:
Thay đổi giá trị của mục danh sách
Có một sự khác biệt quan trọng giữa danh sách và chuỗi: chúng ta có thể thay đổi các giá trị trong danh sách, nhưng chúng ta không thể thay đổi các ký tự riêng lẻ trong một chuỗi.
Ví dụ: trong danh sách, chúng tôi có thể thay đổi một trong các yếu tố có giá trị mới. Trong trường hợp này, chúng tôi sẽ thay thế phần tử thứ hai trong danh sách [do đó được lập chỉ mục là
for number in odds:
print[number]
1 nếu first and last: 1 7
7 là phần đầu tiên] với giá trị mới: for number in odds:
print[number]
3 sẽ được thay thế bằng for number in odds:
print[number]
4:names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
['`names` is originally:', ['Newton', 'Darwing', 'Turing']]
['final value of `names`:', ['Newton', 'Darwin', 'Turing']]
Việc thay thế phần tử ____65 của Danh sách
for number in odds:
print[number]
6 đã thành công.list for number in odds:
print[number]
6 was successful.Do đó, một danh sách được cho là có thể thay đổi.mutable.
Mặt khác, nếu chúng ta có một biến gọi là
for number in odds:
print[number]
7, chúng ta không thể thay đổi bất kỳ phần tử riêng lẻ nào của biến như trong ví dụ này, nơi chúng ta cố gắng thay thế for number in odds:
print[number]
8 cho for number in odds:
print[number]
9 trong for number in odds:
print[number]
4; Điều này sẽ gây ra lỗi:variable called for number in odds:
print[number]
7 we cannot change any of the individual elements of the variable as in this example where we try to substitute a for number in odds:
print[number]
8 for the for number in odds:
print[number]
9 in for number in odds:
print[number]
4; this will cause an error:In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
0In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
1Do đó, một biến được cho là bất biến.immutable.
Có thể thay đổi hoặc bất biến
Ch-Ch-Ch-Changes
Dữ liệu có thể được sửa đổi tại chỗ được gọi là có thể thay đổi, trong khi dữ liệu không thể sửa đổi được gọi là bất biến.mutable, while data which cannot be modified is called immutable.
Chuỗi và số là bất biến.
Điều này không có nghĩa là các biến có giá trị chuỗi hoặc số là hằng số, nhưng khi chúng tôi muốn thay đổi giá trị của một chuỗi hoặc biến số, chúng tôi chỉ có thể thay thế giá trị cũ bằng một giá trị hoàn toàn mới.
Danh sách và mảng là có thể thay đổi.
Danh sách và mảng, mặt khác, có thể thay đổi: chúng ta có thể sửa đổi chúng sau khi chúng được tạo ra. Chúng ta có thể thay đổi các yếu tố riêng lẻ, nối các yếu tố mới hoặc sắp xếp lại toàn bộ danh sách. Đối với một số hoạt động, như sắp xếp, chúng ta có thể chọn sử dụng chức năng sửa đổi dữ liệu tại chỗ hoặc hàm trả về một bản sao đã sửa đổi và để lại không thay đổi ban đầu.
Hãy cẩn thận khi sửa đổi dữ liệu tại chỗ. Nếu hai biến đề cập đến cùng một danh sách và bạn sửa đổi giá trị danh sách, nó sẽ thay đổi cho cả hai biến! Nếu bạn muốn các biến có giá trị có thể thay đổi độc lập, bạn phải tạo một bản sao của giá trị khi bạn gán nó.. If two variables refer to the same list, and you modify the list value, it will change for both variables! If you want variables with mutable values to be independent, you must make a copy of the value when you assign it.
Do những cạm bẫy như thế này, mã sửa đổi dữ liệu có thể khó hiểu hơn. Tuy nhiên, việc sửa đổi cấu trúc dữ liệu lớn thường hiệu quả hơn nhiều so với việc tạo ra một bản sao sửa đổi cho mọi thay đổi nhỏ.
Bạn nên xem xét cả hai khía cạnh này khi viết mã của bạn.
Danh sách lồng nhau
Vì danh sách có thể chứa bất kỳ biến Python nào, nó thậm chí có thể chứa các danh sách khác.
Ví dụ, chúng tôi có thể đại diện cho các sản phẩm trong kệ của một cửa hàng tạp hóa nhỏ và sau đó chúng tôi có thể sử dụng một phương pháp lập chỉ mục [bắt đầu với
first and last: 1 7
7 như thường lệ trong Python] để trích xuất bất kỳ danh sách phụ nào theo nhiều cách khác nhau. Lưu ý chỉ số kép của người Viking ____ ____72 để trích xuất danh sách đầu tiên từ 1
3
5
7
3 và sau đó trích xuất mục đầu tiên từ danh sách trích xuất đó:In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
2In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
3Hình ảnh này được cung cấp bởi Hadley Wickham đưa ra một ví dụ trực quan về các ý tưởng về danh sách và những người phụ mà chúng tôi vừa khám phá:
Hình 1.Minh họa danh sách, và các mục iDexed.
Sửa đổi danh sách: 1
3
5
7
4, 1
3
5
7
5, 1
3
5
7
6
1
3
5
7
1
3
5
7
1
3
5
7
1
3
5
7
7 [thêm] vào danh sách hiện có:
1
3
5
7
Hãy để lại tái tạo danh sách
1
3
5
7
8 và sau đó thêm một mục nữa sau khi danh sách được tạo.Chúng tôi gặp một lần nữa ký hiệu dấu chấm của người Viking mà chúng tôi đã thấy trước đây với các thuộc tính lệnh thư viện.
Cấu trúc lệnh dựa trên các thuộc tính của danh sách được xác định trước Wihtin Python. Nói cách khác, một danh sách Python về tự nhiên có các thuộc tính vốn có mà bạn có thể liệt kê với lệnh
1
3
5
7
9 mà chúng tôi đã thấy trước đó.based on properties of lists predefined wihtin
Python. In other words, a Python list by nature has inherent properties that you can list with the 1
3
5
7
9 command we saw before.1
3
5
7
4 sẽ là một trong những thuộc tính và do đó, lệnh names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
1 sẽ là một phương thức tích hợp trên mạng để nối [thêm] vào danh sách hiện có 1
3
5
7
8.In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
4In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
5Lưu ý: Một phương thức khác để thêm một mục ở cuối danh sách là sử dụng toán hạng
names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
3. Do đó, mã cũng có thể được viết là:In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
6In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
7 1
3
5
7
5 Xóa một mục:
1
3
5
7
Phương thức để loại bỏ một mục sử dụng lệnh
1
3
5
7
5 và chỉ định một mục được lập chỉ mục. Theo nghĩa đó, một chế độ hoạt động khác với chúng ta vừa thấy với names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
1.Hãy để lại danh sách
1
3
5
7
8 dài hơn và sau đó xóa mục đầu tiên:In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
8In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
9Mục này cũng có thể ở giữa danh sách, ví dụ như phần tử thứ 3 [do đó chỉ mục
names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
8.] Chúng tôi xây dựng lại danh sách 1
3
5
7
8 để bắt đầu lại:
odds = [1, 3, 5, 7]
print['odds are:', odds]
0odds = [1, 3, 5, 7]
print['odds are:', odds]
1 Đảo ngược một danh sách với ['`names` is originally:', ['Newton', 'Darwing', 'Turing']]
['final value of `names`:', ['Newton', 'Darwin', 'Turing']]
0
['`names` is originally:', ['Newton', 'Darwing', 'Turing']]
['final value of `names`:', ['Newton', 'Darwin', 'Turing']]
Ở đây, một lần nữa phương thức sử dụng phương thức ký hiệu DOT DOT như một phần của thuộc tính vốn có của danh sách Python [sử dụng
['`names` is originally:', ['Newton', 'Darwing', 'Turing']]
['final value of `names`:', ['Newton', 'Darwin', 'Turing']]
1 để xem lại danh sách nếu bạn muốn.]Chúng tôi bắt đầu lại với danh sách
1
3
5
7
8 được đổi mới và sau đó đảo ngược nó với thuộc tính Danh sách tích hợp ['`names` is originally:', ['Newton', 'Darwing', 'Turing']]
['final value of `names`:', ['Newton', 'Darwin', 'Turing']]
3:odds = [1, 3, 5, 7]
print['odds are:', odds]
2odds = [1, 3, 5, 7]
print['odds are:', odds]
3Gây rắc rối
Mặc dù sửa đổi tại chỗ, rất hữu ích khi nhớ rằng Python xử lý các danh sách theo một cách hơi phản trực giác.
Nếu chúng tôi lập một danh sách và [cố gắng] sao chép nó sau đó sửa đổi tại chỗ, chúng tôi có thể gây ra tất cả các loại rắc rối. Trong mã bên dưới, chúng tôi tạo danh sách
1
3
5
7
8 và sau đó tạo một bản sao có tên ['`names` is originally:', ['Newton', 'Darwing', 'Turing']]
['final value of `names`:', ['Newton', 'Darwin', 'Turing']]
5 mà sau này chúng tôi sửa đổi bằng cách thêm phần tử names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
8 với ['`names` is originally:', ['Newton', 'Darwing', 'Turing']]
['final value of `names`:', ['Newton', 'Darwin', 'Turing']]
7 [tất nhiên là không và số lẻ nhưng là số nguyên tố.]Khi làm như vậy, danh sách
1
3
5
7
8 ban đầu cũng sẽ được sửa đổi:odds = [1, 3, 5, 7]
print['odds are:', odds]
4odds = [1, 3, 5, 7]
print['odds are:', odds]
5Do đó, chúng tôi đã vô tình thêm
names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
8 vào danh sách 1
3
5
7
8.Điều này là do Python lưu trữ một danh sách trong bộ nhớ và sau đó có thể sử dụng nhiều tên để tham khảo cùng một danh sách. Xem đoạn tiếp theo để biết cách an toàn để sao chép danh sách.
Sao chép một danh sách đơn giản một cách an toàn
Nếu tất cả những gì chúng tôi muốn làm là sao chép danh sách [đơn giản], chúng tôi có thể sử dụng chức năng danh sách, vì vậy chúng tôi không sửa đổi danh sách mà chúng tôi không có ý. Sự khác biệt là thay vì viết
In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
01, chúng tôi tạo một danh sách mới với In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
02:odds = [1, 3, 5, 7]
print['odds are:', odds]
6odds = [1, 3, 5, 7]
print['odds are:', odds]
7Trong trường hợp này, danh sách ban đầu
1
3
5
7
8 đã an toàn trước mọi sửa đổi.Điều này khác với cách các biến hoạt động trong Bài 1, và tương tự như cách một bảng tính hoạt động.
Kiểm tra sự hiểu biết của bạn:
Biến một chuỗi thành một danh sách
Sử dụng một vòng lặp để chuyển đổi chuỗi Hello Hello thành một danh sách các chữ cái:“hello” into a list of letters:
odds = [1, 3, 5, 7]
print['odds are:', odds]
8Gợi ý: Bạn có thể tạo một danh sách trống như thế này:
Giải pháp được cung cấp như sau:
- Tạo một danh sách trống có tên
04In [27]: lis1=map[list,s] In [28]: lis1 Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
- Mở vòng lặp
05 với biến được khai báoIn [27]: lis1=map[list,s] In [28]: lis1 Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
06 trong trích dẫn.In [27]: lis1=map[list,s] In [28]: lis1 Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
- Sử dụng từ khóa
07 làm biến vòng lặp.In [27]: lis1=map[list,s] In [28]: lis1 Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
07 đại diện cho các ký tự [chữ cái] một lầnIn [27]: lis1=map[list,s] In [28]: lis1 Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
- Sử dụng thuộc tính
4 được xây dựng trong tất cả danh sách Python để thêm1 3 5 7
07 ở cuối danh sáchIn [27]: lis1=map[list,s] In [28]: lis1 Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
- Khi vòng lặp được hoàn thành, danh sách cuối cùng được in.
odds = [1, 3, 5, 7]
print['odds are:', odds]
9['odds are:', [1, 3, 5, 7]]
0Điều gì có thể được cải thiện hoặc thay đổi?
- Chuỗi Hello Hello, là một bộ phận tích hợp, nhưng có thể được tạo một biến thay thế. Điều này sẽ làm cho phương pháp linh hoạt và có thể thay đổi hơn bằng cách thay đổi giá trị của biến, ở đây
11.In [27]: lis1=map[list,s] In [28]: lis1 Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
['odds are:', [1, 3, 5, 7]]
1['odds are:', [1, 3, 5, 7]]
0Chúng ta có thể đi xa hơn nữa trong việc trừu tượng hóa và sử dụng thêm một biến
In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
12 để lưu trữ tạm thời giá trị của In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
07 và sau đó sử dụng phương thức names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
3 thay vì phương pháp 1
3
5
7
4 như chúng ta đã thấy trước đây:['odds are:', [1, 3, 5, 7]]
3['odds are:', [1, 3, 5, 7]]
0Lưu ý: Sử dụng
In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
16 Trước đây làm tiền tố cho một tên biến là một ý tưởng tốt để làm rõ thực tế rằng bạn đã tạo nên tên biến đó và nó không được tích hợp trong chương trình Python.Cắt [tập hợp] một danh sách
Các tập hợp danh sách và chuỗi có thể được truy cập bằng cách chỉ định phạm vi giá trị trong ngoặc, tương tự như cách chúng tôi truy cập phạm vi vị trí trong một mảng numpy. Điều này thường được gọi là cắt lát của người dùng danh sách/chuỗi.Numpy array. This is commonly referred to as “slicing” the list/string.
Mã bên dưới hiển thị các phương thức cắt cho một biến
In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
17 bằng cách lấy 10 chữ cái đầu tiên [từ các vị trí first and last: 1 7
7 đến In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
19.]Phân đoạn tiếp theo lấy phần khác của biến, từ các vị trí
In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
20 đến In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
21.Phân đoạn tiếp theo tạo một tập hợp con của một danh sách, bắt đầu tại vị trí
In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
22 [nhưng được lập chỉ mục là names = ['Newton', 'Darwing', 'Turing'] # typo in Darwin's name
print['`names` is originally:', names]
names[1] = 'Darwin' # correct the name
print['final value of `names`:', names]
8 vì first and last: 1 7
7 là đầu tiên.]Phân đoạn cuối cùng in mục cuối cùng từ một danh sách có vị trí
for number in odds:
print[number]
0.['odds are:', [1, 3, 5, 7]]
5['odds are:', [1, 3, 5, 7]]
6Tập thể dục: cắt từ cuối
Sử dụng cắt để chỉ truy cập bốn ký tự cuối cùng của chuỗi hoặc mục của danh sách.
['odds are:', [1, 3, 5, 7]]
7['odds are:', [1, 3, 5, 7]]
8Giải pháp của bạn có hoạt động bất kể bạn biết trước độ dài của chuỗi hay danh sách [ví dụ: nếu bạn muốn áp dụng giải pháp cho một tập hợp các danh sách các độ dài khác nhau]? Nếu không, hãy cố gắng thay đổi cách tiếp cận của bạn để làm cho nó mạnh mẽ hơn.
Bài tập: Những lát không liên tục
Cho đến nay, chúng tôi đã thấy cách sử dụng cắt lát để lấy các khối liên tiếp từ một chuỗi. Nhưng điều gì sẽ xảy ra nếu chúng ta muốn lấy một tập hợp các mục nhập không phải là người cạnh nhau trong chuỗi?
Bạn có thể đạt được điều này bằng cách cung cấp một đối số thứ ba cho phạm vi trong khung, được gọi là kích thước bước. Ví dụ dưới đây cho thấy cách bạn có thể lấy mỗi mục thứ ba trong danh sách:step size. The example below shows how you can take every third entry in a list:
['odds are:', [1, 3, 5, 7]]
9print['first and last:', odds[0], odds[-1]]
0Lưu ý rằng lát cắt bắt đầu với mục đầu tiên trong phạm vi, sau đó là các mục được thực hiện trong các khoảng cách tương đương [các bước] sau đó. Nếu bạn muốn bắt đầu tập hợp con với mục thứ ba, bạn sẽ cần chỉ định đó là điểm bắt đầu của phạm vi cắt lát:
print['first and last:', odds[0], odds[-1]]
1print['first and last:', odds[0], odds[-1]]
2Sử dụng đối số kích thước bước để tạo một chuỗi mới chỉ chứa mọi ký tự khác trong chuỗi Chuỗi trong một khu vườn Octopus trong bóng râm
print['first and last:', odds[0], odds[-1]]
3print['first and last:', odds[0], odds[-1]]
4Nếu bạn muốn lấy một lát từ đầu chuỗi, bạn có thể bỏ qua chỉ mục đầu tiên trong phạm vi:
print['first and last:', odds[0], odds[-1]]
5print['first and last:', odds[0], odds[-1]]
6Và tương tự, bạn có thể bỏ qua chỉ số kết thúc trong phạm vi để lấy một lát vào cuối chuỗi:
print['first and last:', odds[0], odds[-1]]
7print['first and last:', odds[0], odds[-1]]
8Tập thể dục: Trao đổi
print['first and last:', odds[0], odds[-1]]
9first and last: 1 7
0So với:
first and last: 1 7
1first and last: 1 7
0Họ luôn luôn làm điều tương tự? Bạn thấy dễ đọc nào hơn?
Tập thể dục: Quá tải
26 thường có nghĩa là bổ sung, nhưng khi được sử dụng trên các chuỗi hoặc danh sách, điều đó có nghĩa là liên kết với nhau. Cho rằng, bạn nghĩ gì về toán tử nhân In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
27 trong danh sách? Cụ thể, đầu ra của mã sau là gì? usually means addition, but when used on strings or lists, it means “concatenate”. Given that, what do you think the multiplication operator In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
27 does on lists? In particular, what will be the output of the following code?first and last: 1 7
3Chọn một đầu ra từ danh sách:
first and last: 1 7
4Thuật ngữ kỹ thuật cho điều này là quá tải toán tử: một toán tử duy nhất, như
In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
26 hoặc In [27]: lis1=map[list,s]
In [28]: lis1
Out[28]: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L']]
27, có thể làm những việc khác nhau tùy thuộc vào những gì nó áp dụng.