2012-02-26 42 views
5
a = "Stack" 
aList = list(a) 

này mang lại cho tôi một mảng như thế này ['S','t',a','c','k']danh sách (chuỗi) chia chuỗi thành một mảng các ký tự trong python như thế nào?

Tôi muốn biết làm thế nào list(string) chức năng này hoạt động!

+3

Tôi đang bỏ phiếu này để chống lại cuộc bỏ phiếu không được nhận xét (phản hồi không hiệu quả). Vì bạn có vẻ khá mới ở đây, hãy để tôi đề nghị bạn đọc qua [FAQ] (http://stackoverflow.com/faq), nếu bạn chưa có, và duyệt qua một số câu hỏi, lưu ý định dạng và nội dung phổ biến công ước. Người mới được chào đón ở đây, vì vậy hãy tiếp tục đặt câu hỏi! – kmote

+0

Python không có mảng. Bạn hỏi gì? –

Trả lời

7

Chuỗi là loại có thể lặp lại. Ví dụ, nếu bạn làm điều này:

for c in 'string': 
    print c 

Bạn nhận được

s 
t 
r 
i 
n 
g 

Vì vậy, đi qua một chuỗi list chỉ lặp trên các ký tự trong chuỗi, và nơi mỗi người trong danh sách.

4

String là iterable trong python vì bạn có thể làm

>>> for ch in "abc": 
...   print ch 
... 
a 
b 
c 
>>> 

và nếu bạn có một cái nhìn tại list lớp construtor sử dụng help("list") trong thông dịch viên python của bạn

class list(object) 
| list() -> new empty list 
| list(iterable) -> new list initialized from iterable's items 

Vì vậy, list("hello") trả về một danh sách mới được khởi tạo.

>>> x = list("hello") 
>>> type(x) 
<type 'list'> 
>>> 
0

này hoạt động vì str thực hiện __iter__, cho phép iter(obj) được gọi trên đối tượng. Đối với str, việc triển khai trả về ký tự theo ký tự.

+0

cảm ơn tất cả mọi người! Tôi muốn biết chính xác hàm list() hoạt động như thế nào. Bạn đã cho tôi một ý tưởng hay về nó! – Jagadheshwar

0

Hầu hết công việc thực sự được thực hiện bởi chuỗi. Bạn đang thực sự sử dụng hàm tạo của loại list. Trong Python, chúng ta thường không quan tâm đến những thứ gì, mà đúng hơn là với những gì chúng có thể làm.

Điều mà chuỗi có thể làm là nó có thể cung cấp cho bạn (ví dụ: với mục đích sử dụng vòng lặp) ký tự của nó (trên thực tế, không có một kiểu ký tự dài). Nhà xây dựng list mong đợi bất kỳ đối tượng nào có thể làm điều này và xây dựng danh sách chứa các phần tử do đó cung cấp.

Các vấn đề liên quan