Splitとpartitionを使用して「Word1 Word2」のような2つの単語で文字列を分割し、次のように単語を別々に(forを使用して)印刷します。
Partition:
Word1
Word2
Split:
Word1
Word2
これは私のコードです:
print("Hello World")
name = raw_input("Type your name: ")
train = 1,2
train1 = 1,2
print("Separation with partition: ")
for i in train1:
print name.partition(" ")
print("Separation with split: ")
for i in train1:
print name.split(" ")
これは事件です:
Separation with partition:
('Word1', ' ', 'Word2')
('Word1', ' ', 'Word2')
Separation with split:
['Word1', 'Word2']
['Word1', 'Word2']
name.split()
のようなコマンドはリストを返します。あなたはそのリストを反復することを検討するかもしれません:
_for i in name.split(" "):
print i
_
あなたが書いたもの、すなわち
_for i in train:
print name.split(" ")
_
コマンドprint name.split(" ")
を2回(値_i=1
_に対して1回、_i=2
_に対して1回)実行します。そして、2回すべての結果を出力します。
_['Word1', 'Word2']
['Word1', 'Word2']
_
partition
でも同様のことが起こります-分割した要素も返すことを除いて。その場合、あなたはやりたいかもしれません
_print name.partition(" ")[0:3:2]
# or
print name.partition(" ")[0::2]
_
要素_0
_および_2
_を返します。または、次のことができます
_train = (0, 2,)
for i in train:
print name.partition(" ")[i]
_
ループの2つの連続したパスで要素0と2を印刷します。この後者のコードは、パーティションを2回計算するため、より非効率的であることに注意してください。あなたが気にしたら、あなたは書くことができます
_train = (0,2,)
part = name.partition(" ")
for i in train:
print part[i]
_
str.partition
は、3つの要素のタプルを返します。分割文字列の前の文字列、分割文字列自体、および残りの文字列。したがって、このように使用する必要があります
first, middle, rest = name.partition(" ")
print first, rest
str.split
を使用するには、次のように分割された文字列を単に印刷できます。
print name.split(" ")
ただし、このように呼び出すと、文字列に複数のスペース文字が含まれている場合、3つ以上の要素が取得されます。例えば
name = "Word1 Word2 Word3"
print name.split(" ") # ['Word1', 'Word2', 'Word3']
1回だけ分割する場合は、次のように、2番目のパラメーターとして分割する回数を指定できます。
name = "Word1 Word2 Word3"
print name.split(" ", 1) # ['Word1', 'Word2 Word3']
ただし、空白文字に基づいて分割しようとしている場合は、" "
を渡す必要はありません。簡単にできます
name = "Word1 Word2 Word3"
print name.split() # ['Word1', 'Word2', 'Word3']
分割数を制限する場合は、
name = "Word1 Word2 Word3"
print name.split(None, 1) # ['Word1', 'Word2 Word3']
注:None
でsplit
を使用するか、パラメーターを指定しないと、これが起こります
分割ドキュメント から引用
Sepが指定されていない場合、またはNoneの場合、異なる分割アルゴリズムが適用されます:連続する空白文字の実行は単一のセパレーターと見なされ、文字列の先頭または末尾に空白文字がある場合、結果の先頭または末尾に空の文字列は含まれません。その結果、空の文字列または空白だけで構成される文字列をNone区切り文字で分割すると、[]が返されます。
したがって、このようにプログラムを変更できます
print "Partition:"
first, middle, rest = name.partition(" ")
for current_string in (first, rest):
print current_string
print "Split:"
for current_string in name.split(" "):
print current_string
または、次のような str.join
メソッドを使用できます
print "Partition:"
first, middle, rest = name.partition(" ")
print "\n".join((first, rest))
print "Split:"
print "\n".join(name.split())
string = "Deepakは良い人であり、Preetiは良い人ではありません。" // 'is'セパレータは最初の出現時に検出されますprint(string.partition( 'is'))
出力:
(「Deepak」、「is」、「善人、Preetiは善人ではない」)
そして、スプリットでは、string = "Deepakは良い人であり、Preetiは良い人ではありません。" // 'is'セパレータはすべての発生時に検出されますprint(string.partition( 'is'))
出力:
(「Deepak」、「is」、「a good person and Preeti」、「is」、「not good person。」)