0

リストを反復処理して文字列を検索するコードがあります。リストはサッカー選手の名前です。ほとんどすべてのプレーヤーで機能しますが、ランダムに ashley westwood というプレーヤーを認識しません。リストを確認したところ、彼は間違いなくそこにいます。すべてが小文字であり、スクリプトは他のすべてのプレーヤーを認識しているため (これまでのところ) 機能します。

基本的に、「in」を使用するとどのような問題が発生する可能性があるかを尋ねています。これから取得する DB エントリはまったく意味がありません。

少し汚れていて、実際には関係ありませんが、コードを含めました。

私も相対的初心者です。

コード

        if 'corner' in text3[:50] or ('inswinging corner' in text3) or ('outswinging corner' in text3) :
        print text3
        print time
        for player in away_players_names:
            this_player = player[0].lower()
            upper = player[0]
            if this_player in segment:
                player_id = away_team_dict[upper]
                player_id = int(player_id[0])
                etype = 10
                team = 2
                cur.execute("""INSERT INTO football.match_events(type, player, time, game_id, team) VALUES (%s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE game_id = game_id""", (etype, player_id, time, game_id, team))  
                db.commit()
        for player in home_players_names:
            this_player = player[0].lower()
            print this_player
            upper = player[0]
            if this_player in segment:
                player_id = home_team_dict[upper]
                player_id = int(player_id[0])
                etype = 10
                print player_id
                team = 1
                cur.execute("""INSERT INTO football.match_events(type, player, time, game_id, team) VALUES (%s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE game_id = game_id""", (etype, player_id, time, game_id, team)) 
                db.commit()            

以下は、印刷されたステートメントと失敗の例です。

corner taken right-footed by ashley westwood to the near post
38.22
bradley guzan
ron vlaar
ciaran clark
nathan baker
matthew lowton
charles n'zogbia
ashley westwood
fabian delph
christian benteke
jordan bowery
andreas weimann
shay given
joe bennett
yacouba sylla
simon dawkins
barry bannan
darren bent
brett holman

これは名前を認識していませんが、その理由はわかりませんか?

誰?

4

2 に答える 2

0

if this_player in segment:

セグメントの価値は何ですか?

于 2013-02-20T20:34:40.733 に答える
0

おそらく、セグメント内の文字列 'ashley westwood' の末尾に空白があります。'アシュリー・ウェストウッド' != 'アシュリー・ウェストウッド'

于 2013-02-20T20:45:12.860 に答える