2016-05-16 39 views
1

我有以下元組,我想迭代第一個值(比如0101AA從下面的元組)&用包含第二個&第三個值(如MTS,DL)的值替換輸入字符串,以防萬一匹配輸入字符串。無法迭代蟒蛇中的元組2.70

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(說「0101AA,MTS,DL」)&我怎麼在對元組的1,2月1日山坳有效的方式輸入字符串檢查, e等... &真的很困惑該怎麼做才能打破&然後匹配它。

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

您在'mastertup'中的值不是元組。他們是字符串。你在問如何將這些分成實際的序列?如果是這樣,請參閱[Python:如何用逗號分隔字符串](http://stackoverflow.com/q/12088442) –

回答

2

在你的情況,mastertup是字符串列表,將其轉換成元組的列表,

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')] 

如果我沒有理解好了,你想從映射到col1col2,col2。使用dict快速查找,

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