2016-05-16 16 views
1

私は最初の値(下のタプルから0101AAと言う)に対して反復したい次のタプルを持っています& 2番目の&を含む値でinputstringを置き換えます(例:MTS、DL)入力文字列と一致します。私がテストしていますPythonでタプルを反復できません2.7

mastertup = ('0101AA,MTS,DL', '03F0,MTS,DL', 'YG,MTS,GJ', 'YK,MTS,KO', 'YL,MTS,KL', '98765,MTS,RJ', '9234,MTS,TN', '919136,MTS,WB', 'YW,MTS,UPW', 'YX,MTS,KT') 

inputstring='0101AA' 

私のコードは、完全なタプル1とライン私はタプル1、2の第一のcolのための効率的な方法で入力された文字列にチェックしますか&(「0101AA、MTS、DL」と言う)を与えますeなど... &本当に混乱して行を壊すために行う&それにマッチします。私はよく理解していれば、あなたの場合は

for counter,line in enumerate(mastertup): 
    print line 
+3

あなたの値はタプルではありません。彼らは文字列です。それらを実際のシーケンスに分割する方法を尋ねていますか?その場合は、[Python:文字列をコンマで区切る方法](http://stackoverflow.com/q/12088442)を参照してください。 –

答えて

2

mastertupあなたはcol1からcol2,col2にマッピングしたいのですが、

lists = [tuple(s.split(',')) for s in mastertup] 

print(lists) 
# Output 
[('0101AA', 'MTS', 'DL'), ('03F0', 'MTS', 'DL'), ('YG', 'MTS', 'GJ'), ('YK', 'MTS', 'KO'), ('YL', 'MTS', 'KL'), ('98765', 'MTS', 'RJ'), ('9234', 'MTS', 'TN'), ('919136', 'MTS', 'WB'), ('YW', 'MTS', 'UPW'), ('YX', 'MTS', 'KT')] 

によるタプルのリストに変換、文字列のリストです。すぐに見てdictを使用して、mastertup` `で

d = dict() 
for s in mastertup: 
    str_list = s.split(',') 
    d[str_list[0]] = ','.join(str_list[1:]) 

# Test 
inputstring = '0101AA' 
inputstring = d.get(inputstring, inputstring) # if inputstring not in d, not mapping 
print(inputstring) 
# Output 
MTS,DL 
関連する問題