0

リストの最初の要素を残りの要素と比較するために、for ループ内に for ループを配置できるように、この for ループの最初の反復をスキップする方法はありますか。

from collections import Counter
vowelCounter = Counter()
vowelList = {'a','e','i','o','u'}
userString = input("Enter a string ")
displayed = False
for letter in userString:
    letter = letter.lower()
    if letter in vowelList:
        vowelCounter[letter] +=1
    for vowelCount1 in vowelCounter.items():
        char, count = vowelCount1
        for vowelCount2 in vowelCounter.items(STARTING AT 2)
            char2, count2 = vowelCount2
            if count > count2 : CONDITION

これの構文はどうなりますか?深さ 5 の For ループを実行するだけです。したがって、次は 3 から開始し、次に 4 から開始し、次に 5 で開始し、条件に応じて正しい print ステートメントになります。ありがとう

4

4 に答える 4

2

反復をスキップするには、次のcontinueキーワードを使用できます。

list = [1,2,3,4,5,6,7,8,9,10]

for value in list:
  if value == list[0]:
    continue
  print(value)

あなたに与えるでしょう:

2
3
4
5
6
7
8
9
10

これがあなたの質問に答えることを願っています。

于 2014-09-22T20:48:18.873 に答える
2

あなたが望むのは、各カウントを他のすべてのカウントと比較することです。あなたが提案したことを行うことができますが、より簡潔な方法は次を使用することitertools.combinationsです:

for v1,v2 in itertools.combinations(vowelCounter, 2):
    if vowelCounter[v1] > vowelCounter[v2]:
        # ...

これにより、比較のために母音のすべてのペアが繰り返されます。このようにすると、vowelCounter[v2] > vowelCounter[v1]これら 2 つが再び表示されないかどうかを確認することもできます (これは、このメソッドまたはネストされた for ループ メソッドに当てはまります)。または、同じ引数で関数を使用でき、itertools.permutations1 つのチェックだけで十分です。

于 2013-11-13T13:59:07.570 に答える
0

[1:] でリストをスライスすると、他のいくつかの人が提案したように、新しい配列が作成されます。itertools.islice()でスライス イテレータを使用する方が高速で経済的です。

from itertools import islice
for car in islice(cars, 1, None):
    # do something
于 2015-10-19T10:08:19.570 に答える