python - 无法在 python 2.7 中迭代元组

标签 python python-2.7 for-loop iterator tuples

我有以下元组,我想迭代第一个值(例如下面元组中的 0101AA),并将输入字符串替换为由第二个和第三个值(例如 MTS、DL)组成的值,以防它与输入字符串匹配。

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、e 等的第一列。 .&真的很困惑如何打破这条线然后匹配它。

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

最佳答案

在您的情况下,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')]

如果我理解得很好,您希望从 col1 映射到 col2,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

关于python - 无法在 python 2.7 中迭代元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37250681/

相关文章:

python - 将文件中的行拆分为字符串和十六进制并对十六进制值进行操作

javascript - For 循环和数组

Python 曼惠特尼置信区间

python - SQLAlchemy 关系与 association_proxy 问题

python - virtualenv 挂断了安装 setuptools

Python:使用 html 解析器提取特定数据

java - 设置迭代器的 Java 泛型

java - 不确定 for 循环迭代?

Python函数捕获子进程stdout和stderr到日志文件

python - 旋转汽车轮胎(open gl)