Python スクリプトに次のコード構造があります。
for fullName in lines[:-1]:
do stuff ...
これにより、最後の行を除くすべての行が処理されます。最後の行は会社名で、残りはすべて人名です。これは、会社名がない場合を除いて機能します。この場合、ループは実行されません。会社名がない場合、名前は 1 つしかありません。このループを少なくとも 1 回実行するように Python に指示する方法はありますか?
Python スクリプトに次のコード構造があります。
for fullName in lines[:-1]:
do stuff ...
これにより、最後の行を除くすべての行が処理されます。最後の行は会社名で、残りはすべて人名です。これは、会社名がない場合を除いて機能します。この場合、ループは実行されません。会社名がない場合、名前は 1 つしかありません。このループを少なくとも 1 回実行するように Python に指示する方法はありますか?
次を使用しif-statement
ます。
if len(fullName) == 1: # Only one person
dostuff_with_one_person()
else:
for fullName in lines[:-1]:
dostuff()
簡単な方法。複数のレコードがある場合、最後から 2 番目のレコードまでのみ処理します。
for i in xrange(len(lines)):
process lines[i]
if i == len(lines)-2: break
要素が 1 つしかない場合、i は 0 になり、それが処理され、i != -1 になります。複数の要素がある場合は、2 としましょう。最初の要素を処理した後、i は 0 になり、i == (2-2) が true になり、ループから抜け出します。
これは基本的に、Pythonのdo-while ループ構造です。
基本的に、ブレーク条件付きの for ループまたは while ループを使用できます。あなたの場合、これを行うことができます:
def do_stuff(x):
print(x)
for i,n in enumerate(lst):
do_stuff(n)
if i>=len(lst)-2:
break