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

これは私がこのlist(string)機能がどのように動作するかを知りたいこの['S','t',a','c','k']list(string)はどのように文字列をPythonの文字の配列に分割しますか?

のような配列を与えます!

+3

私は、コメントされていない投票(非生産的なフィードバック)に対抗するためにこれを投票しています。ここでかなり新しいと思われるので、[FAQ](http://stackoverflow.com/faq)をまだ読んでいない場合は、一般的な書式と内容コンベンション。初心者は大歓迎ですので、質問してください! – kmote

+0

Pythonには配列がありません。何を聞いていますか? –

答えて

7

文字列は反復可能な型です。あなたがこれを行う場合、例えば:

for c in 'string': 
    print c 

をあなたは

s 
t 
r 
i 
n 
g 

を取得するので、文字列内の文字の上にlistだけ繰り返し処理に文字列を渡すと、リスト内の各1を配置します。

4

文字列を使用すると、

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

を行うことができますので、Pythonでiterableであり、あなたが

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

だからあなたのPythonインタプリタでhelp("list")を使用してlistクラスconstrutorを見てみる場合は、list("hello")新しいリストを返します。初期化されました。

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

striter(obj)がオブジェクトで呼び出されることを可能にする、__iter__を実装しているためこれが動作します。 strの場合、実装は文字単位で戻ります。

+0

ありがとうございました!私は、list()関数がどのように働いたかを正確に知りたかったのです。あなたは人々が私にそれについて良いアイデアをくれました! – Jagadheshwar

0

ほとんどの作業は実際には文字列で行われています。実際にはlist型のコンストラクタを使用しています。 Pythonでは、私たちは通常、何が何であるかに関心を持っているのではなく、できることに関心を持っています。

文字列は、その文字(実際には長さ1の部分文字列、別の文字種はありません)を一度に1つずつ(たとえばforループを使用する目的で)与えることができます。 listコンストラクタはこれを行うことができるオブジェクトをすべて想定し、提供された要素を含むリストを作成します。

関連する問題