-3

文字列がリストと見なされるかどうかに興味があります。

4

4 に答える 4

4

文字列とリストはどちらもシーケンスであるため、forループはそれらを反復できますが、これらは明らかに 2 つの異なるタイプです。

for c in 'abcd':
    print c

for i in [1,2,3,4]:
    print i
于 2013-08-16T01:17:22.463 に答える
3

文字列は、猫がマシュマロのようなリストです。彼らは多くの点で似ています-あなたはそれらを撫でることができます、彼らは両方とも柔らかく、あなたに本当に甘いことができ、あなたの床を台無しにすることができます.

そして、マシュマロを食べることはできますが、猫を食べようとすると、顔に大きな鋭い血まみれのエラーが表示されます.

文字列とリストの場合も同様です。それらは両方ともシーケンスであるため、多くの同じことを行うことができますが、文字列でのみ行うべきこともあれば、リストのみで行うべきこともあります。

于 2013-08-16T01:26:03.090 に答える
2

ほぼすべての言語で、文字列は実際には文字のリストです。その意味では、文字列はリストです。ただし、文字列は独自のエンティティです。これらには独自のメソッドがあり、すべてのリスト メソッドを文字列に使用できるわけではありません。ただし、重複があります。文字列をリストであるかのようにスライス、反復、および連結することができ、いくつかのリスト メソッド (つまり.lenおよびindex) を使用することもできます。ただし、最大の違いは、Python の文字列はミュータブルではないということです。あなたができるリストでmy_list[5] = "a"。これを文字列で試すと、TypeError.

編集:

別の回答のコメントで述べられているように、不変性は最大の違いではないかもしれません (それは意見の問題です)。2 次元、3 次元、さらには 4 次元のリストを簡単に作成できますが、文字列ではそのようなことはできません (ただし、my_list = ["foo", "bar"]を呼び出すことができるため、おそらく多次元と見なすことができますが、単なる文字列my_list[1][2]ではなく、文字列とリスト)。「List Of Lists」のように、誰かが「String Of Strings」を作成できたら、とても感銘を受けます。

于 2013-08-16T01:21:19.433 に答える
1

他の人が言ったことに加えて。文字列は変更可能でもハッシュ可能でもありません。文字列をその場で変更することはできず、辞書のキーやセットのメンバーになることができます。リストは変更可能であり、ハッシュ可能ではありません。リストをその場で変更できますが、辞書またはセットのメンバーのキーにすることはできません。

# Hashability
>>> {['a', 'b'] : 1}  # With lists: fails    
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> {'ab' : 1}        # With strings: works 
{'ab': 1}
于 2013-08-16T01:22:40.560 に答える