2

Python スクリプトに次のコード構造があります。

for fullName in lines[:-1]:
    do stuff ...

これにより、最後の行を除くすべての行が処理されます。最後の行は会社名で、残りはすべて人名です。これは、会社名がない場合を除いて機能します。この場合、ループは実行されません。会社名がない場合、名前は 1 つしかありません。このループを少なくとも 1 回実行するように Python に指示する方法はありますか?

4

5 に答える 5

1

次を使用しif-statementます。

if len(fullName) == 1: # Only one person
    dostuff_with_one_person() 
else:
    for fullName in lines[:-1]:
        dostuff()
于 2013-06-30T02:39:39.920 に答える
1

簡単な方法。複数のレコードがある場合、最後から 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 になり、ループから抜け出します。

于 2013-06-30T03:32:41.807 に答える
1

これは基本的に、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
于 2013-06-30T03:36:39.853 に答える