Có một cách trực tiếp [không sử dụng một vòng lặp] để truy cập các ký tự khác nhau của các chuỗi tạo thành một danh sách?
Ví dụ:
L=['hola','que','tal']
Làm thế nào tôi có thể truy cập trực tiếp ví dụ vào phần tử thứ hai của chuỗi thứ ba? [I E. 'một']. Trong cùng một dòng, làm thế nào tôi sẽ trực tiếp truy cập vào hai phần tử đầu tiên của mỗi chuỗi để tạo danh sách mới
S=['ho','qu','ta']
Tôi sẽ mong đợi một cái gì đó như
>>> L[2][1]
'a'
0 trong trường hợp đầu tiên và tương tự >>> L[2][1]
'a'
1 nhưng rõ ràng nó không chính xác.
Maroun
92.4K30 Huy hiệu vàng188 Huy hiệu bạc237 Huy hiệu đồng30 gold badges188 silver badges237 bronze badges
Đã hỏi ngày 6 tháng 2 năm 2018 lúc 20:16Feb 6, 2018 at 20:16
3
Cách tiếp cận đầu tiên của bạn là chính xác, đó thực sự là cách bạn lập chỉ mục một danh sách đa chiều
>>> L[2][1]
'a'
Vấn đề thứ hai có thể được giải quyết bằng cách sử dụng cắt trong danh sách hiểu biết
>>> [i[:2] for i in L]
['ho', 'qu', 'ta']
Đã trả lời ngày 6 tháng 2 năm 2018 lúc 20:18Feb 6, 2018 at 20:18
Cory Kramercory KramerCory Kramer
Huy hiệu vàng 110K1515 gold badges158 silver badges208 bronze badges
Bạn có thể làm:
[a[:2] for a in L]
>>> L
['hola', 'que', 'tal']
>>> [a[:2] for a in L]
['ho', 'qu', 'ta']
Chúng tôi đang lặp lại trong danh sách
>>> L[2][1]
'a'
2 và đối với mỗi yếu tố, chúng tôi nhận được hai ký tự đầu tiên.Đã trả lời ngày 6 tháng 2 năm 2018 lúc 20:19Feb 6, 2018 at 20:19
MarounmarounMaroun
92.4K30 Huy hiệu vàng188 Huy hiệu bạc237 Huy hiệu đồng30 gold badges188 silver badges237 bronze badges
Đã hỏi ngày 6 tháng 2 năm 2018 lúc 20:16
L=['hola','que','tal']
s = [i[:2] for i in L]
Cách tiếp cận đầu tiên của bạn là chính xác, đó thực sự là cách bạn lập chỉ mục một danh sách đa chiều
['ho', 'qu', 'ta']
Đã trả lời ngày 6 tháng 2 năm 2018 lúc 20:19Feb 6, 2018 at 20:19
Marounmarounbriancaffey
Sử dụng danh sách hiểu cho điều này:4 gold badges29 silver badges54 bronze badges
Điều này cung cấp cho bạn:
L=['hola','que','tal']
S = [x[:2] for x in L]
Đã trả lời ngày 6 tháng 2 năm 2018 lúc 20:19Feb 6, 2018 at 20:19
MarounmarounJosh Abraham
Sử dụng danh sách hiểu cho điều này:1 gold badge8 silver badges18 bronze badges
Điều này cung cấp cho bạn:
L=['hola','que','tal']
print[map[lambda x: x[:2], L]]
#['ho', 'qu', 'ta']
BriancaffeybriancaffeyFeb 6, 2018 at 20:23
2.0924 Huy hiệu vàng29 Huy hiệu bạc54 Huy hiệu đồngpault
Nếu bạn muốn hai phần tử đầu tiên của mỗi chuỗi trong danh sách mới, hãy sử dụng điều này:13 gold badges100 silver badges141 bronze badges
Python có một loại danh sách tích hợp tuyệt vời có tên là "Danh sách". Danh sách chữ được viết trong dấu ngoặc vuông []. Danh sách hoạt động tương tự như các chuỗi - sử dụng hàm Len [] và dấu ngoặc vuông [] để truy cập dữ liệu, với phần tử đầu tiên tại INDEX 0. [xem tài liệu danh sách python.org chính thức.]
S=['ho','qu','ta']
0
Bài tập với AN = ON DANH SÁCH không tạo một bản sao. Thay vào đó, bài tập làm cho hai biến chỉ vào một danh sách trong bộ nhớ.
S=['ho','qu','ta']
1
"Danh sách trống" chỉ là một cặp dấu ngoặc trống []. ' +' Hoạt động để nối hai danh sách, vì vậy [1, 2] + [3, 4] mang lại [1, 2, 3, 4] [điều này giống như + với các chuỗi].
Cho và vào
Các cấu trúc * cho * và * trong * của Python là vô cùng hữu ích và việc sử dụng đầu tiên của chúng mà chúng ta sẽ thấy là có danh sách. Cấu trúc * cho * -
>>> L[2][1]
'a'
4 - là một cách dễ dàng để xem từng phần tử trong một danh sách [hoặc bộ sưu tập khác]. Không thêm hoặc xóa khỏi danh sách trong quá trình lặp.S=['ho','qu','ta']
2Nếu bạn biết loại điều gì trong danh sách, hãy sử dụng tên biến trong vòng lặp nắm bắt thông tin đó như "num" hoặc "tên" hoặc "url". Vì mã Python không có cú pháp khác để nhắc nhở bạn về các loại, tên biến của bạn là một cách chính để bạn giữ thẳng những gì đang diễn ra. . được sử dụng bởi các chương trình khác như IDE [môi trường phát triển tích hợp] và các công cụ phân tích tĩnh như trình kiểm tra linter/loại để xác thực nếu các chức năng của bạn được gọi với các đối số tương thích.]
Cấu trúc * in * của riêng mình là một cách dễ dàng để kiểm tra nếu một phần tử xuất hiện trong danh sách [hoặc bộ sưu tập khác] -
>>> L[2][1]
'a'
5 - kiểm tra xem giá trị có trong bộ sưu tập, trả về đúng/sai.S=['ho','qu','ta']
3Các cấu trúc FOR/trong được sử dụng rất phổ biến trong mã Python và làm việc trên các loại dữ liệu khác ngoài danh sách, vì vậy bạn chỉ nên ghi nhớ cú pháp của họ. Bạn có thể có thói quen từ các ngôn ngữ khác, nơi bạn bắt đầu lặp lại bằng tay trên một bộ sưu tập, trong đó trong Python bạn chỉ nên sử dụng cho/in.
Bạn cũng có thể sử dụng cho/vào để làm việc trên một chuỗi. Chuỗi hoạt động giống như một danh sách các ký tự của nó, vì vậy
>>> L[2][1]
'a'
6 in tất cả các ký tự trong một chuỗi.Phạm vi
Hàm phạm vi [n] mang lại các số 0, 1, ... n-1 và phạm vi [a, b] trả về a, a+1, ... b-1-lên đến nhưng không bao gồm số cuối cùng . Sự kết hợp giữa hàm for-loop và phạm vi [] cho phép bạn xây dựng một số truyền thống cho vòng lặp:
S=['ho','qu','ta']
4Có một biến thể xrange [] để tránh chi phí xây dựng toàn bộ danh sách cho các trường hợp nhạy cảm hiệu suất [trong Python 3, Range [] sẽ có hành vi hiệu suất tốt và bạn có thể quên Xrange []].
Trong khi lặp lại
Python cũng có tiêu chuẩn trong khi vòng lặp và các câu lệnh * break * và * tiếp tục * hoạt động như trong C ++ và Java, thay đổi quá trình của vòng lặp trong cùng. Các vòng lặp trên/trong giải quyết trường hợp lặp lại phổ biến trên mọi phần tử trong danh sách, nhưng vòng lặp trong khi cung cấp cho bạn toàn bộ quyền kiểm soát các số chỉ mục. Đây là một vòng lặp trong thời gian truy cập vào mỗi yếu tố thứ 3 trong danh sách:
S=['ho','qu','ta']
5Phương pháp liệt kê
Dưới đây là một số phương pháp danh sách phổ biến khác.
- list.Append [elem] - Thêm một yếu tố duy nhất vào cuối danh sách. Lỗi phổ biến: Không trả về danh sách mới, chỉ cần sửa đổi bản gốc.
- list.insert [index, elem] - chèn phần tử tại chỉ mục đã cho, chuyển các phần tử sang bên phải.
- list.Extend [list2] thêm các yếu tố trong List2 vào cuối danh sách. Sử dụng + hoặc + = trên danh sách tương tự như sử dụng Extend [].
- list.index [ELEM] - Tìm kiếm phần tử đã cho từ đầu danh sách và trả về chỉ mục của nó. Ném một valueError nếu phần tử không xuất hiện [sử dụng "trong" để kiểm tra mà không có giá trịerror].
- list.Remove [ELEM] - Tìm kiếm trường hợp đầu tiên của phần tử đã cho và xóa nó [ném valueError nếu không có]
- list.sort [] - Sắp xếp danh sách tại chỗ [không trả lại nó]. [Hàm Sắp xếp [] hiển thị sau được ưu tiên.]
- list.reverse [] - đảo ngược danh sách tại chỗ [không trả lại nó]
- list.pop [index] - Xóa và trả về phần tử tại chỉ mục đã cho. Trả về phần tử ngoài cùng bên phải nếu chỉ mục bị bỏ qua [gần ngược với append []].
Lưu ý rằng đây là các phương thức * * trên một đối tượng danh sách, trong khi Len [] là một hàm lấy danh sách [hoặc chuỗi hoặc bất cứ điều gì] làm đối số.
S=['ho','qu','ta']
6Lỗi phổ biến: Lưu ý rằng các phương thức trên không * trả về * Danh sách được sửa đổi, chúng chỉ sửa đổi danh sách ban đầu.
S=['ho','qu','ta']
7Danh sách tích tụ
Một mẫu phổ biến là bắt đầu một danh sách dưới dạng danh sách trống [], sau đó sử dụng append [] hoặc extend [] để thêm các phần tử vào nó:
S=['ho','qu','ta']
8Danh sách các lát
Các lát cắt hoạt động trên danh sách giống như với các chuỗi và cũng có thể được sử dụng để thay đổi các phần phụ của danh sách.
S=['ho','qu','ta']
9Bài tập: list1.py
Để thực hành tài liệu trong phần này, hãy thử các vấn đề trong list1.py không sử dụng phân loại [trong các bài tập cơ bản].list1.py that do not use sorting [in the Basic Exercises].