0
   Number1     Number2     Info1
1) 19124451932~18374913342~0- 9124441932
2) 18436889349~17064219321~0- 2024281123
3) 13352808654~19703842247~0- 9703842247

の最後の 9 桁がその行の部分文字列および/またはその行の場合if-clauseに評価されるを探しています。TrueInfo1Number1Number2

これは、Python のより大きな If 条件の一部になります。部分文字列から完全な文字列を検索する方法はたくさんありますが、文字の長さに基づいて完全な文字列から部分文字列を検索する方法は見つかりません。

本当にありがとう。

4

2 に答える 2

2

これはかなり簡単なはずです。行があなたが書いたように見えると仮定すると、次のようなことができます:

number1, number2, info1 = (s.strip() for s in line.split('~'))
if any(info1[-9:] in n for n in (number1, number2)):
    pass # Do stuff

これは次のように機能します。

  • まず、行を 3 つの関連する部分に分割し、それらを変数名に割り当てます。
  • 次に、 のそれぞれについて(number1, number2)、 の最後の 9 文字で構成される部分文字列info1が存在するかどうかを確認します。そうであれば、あなたの条件は満たされています。
于 2013-05-15T14:47:12.240 に答える
1

このようなもの:

import re
with open("abc") as f:
    next(f)   #skip header
    for line in f:
        n1,n2 = re.findall("(\w+)~",line)
        info = line.split()[-1]
        if info[-9:] in n1 or info[-9:] in n2:
            print "yes"
        else:
            print "no"

出力:

no
no
yes
于 2013-05-15T14:47:05.180 に答える