Python 仅在未找到时追加值
如果分类法中的分类法不在翻译中。我希望它打印Python 仅在未找到时追加值,python,Python,如果分类法中的分类法不在翻译中。我希望它打印152W00000X | Not Found当前所有行都打印为Not Found。如果删除else,则会出现超出范围的错误 taxonomies = ['152W00000X', '156FX1800X', '200000000X', '261QD0000X', '3336C0003X', '333600000X', '261QD0000X'] translations = {'261QD0000X': 'Clinic/Center Dental'
152W00000X | Not Found
当前所有行都打印为Not Found。如果删除else
,则会出现超出范围的错误
taxonomies = ['152W00000X', '156FX1800X', '200000000X', '261QD0000X', '3336C0003X', '333600000X', '261QD0000X']
translations = {'261QD0000X': 'Clinic/Center Dental', '3336C0003X': 'Pharmacy Community/Retail Pharmacy', '333600000X': 'Pharmacy'}
a = 0
final = []
for nums in taxonomies:
for i, v in translations.items():
if nums == i:
data = v
final.append(data)
else:
final.append('Not Found')
for nums in taxonomies:
print nums, "|", final[a]
a = a + 1
电流输出为:
152W00000X | Not Found
156FX1800X | Not Found
200000000X | Not Found
261QD0000X | Not Found
3336C0003X | Not Found
333600000X | Not Found
261QD0000X | Not Found
152W00000X | Not Found
156FX1800X | Not Found
200000000X | Not Found
261QD0000X | Clinic/Center Dental
3336C0003X | Pharmacy Community/Retail Pharmacy
333600000X | Pharmacy
261QD0000X | Clinic/Center Dental
理想的输出是:
152W00000X | Not Found
156FX1800X | Not Found
200000000X | Not Found
261QD0000X | Not Found
3336C0003X | Not Found
333600000X | Not Found
261QD0000X | Not Found
152W00000X | Not Found
156FX1800X | Not Found
200000000X | Not Found
261QD0000X | Clinic/Center Dental
3336C0003X | Pharmacy Community/Retail Pharmacy
333600000X | Pharmacy
261QD0000X | Clinic/Center Dental
我正在使用
re
在两个或多个空格处拆分IDVtaxo.txt
。除非源实际上由制表符分隔,否则这将起作用
import re
with open('IDVtaxo.txt') as f:
idvtaxo = {re.split(r'\s{2,}', x)[0]: re.split(r'\s{2,}', x)[2] for x in f.read().splitlines()}
with open('taxonomies.txt') as f:
taxonomies = f.read().splitlines()
for taxonomy in taxonomies:
data = taxonomy.split('|')
tranlated = idvtaxo.get(data[1], 'Not Found')
print '%s|%s' % (taxonomy, tranlated)
我正在使用
re
在两个或多个空格处拆分IDVtaxo.txt
。除非源实际上由制表符分隔,否则这将起作用
import re
with open('IDVtaxo.txt') as f:
idvtaxo = {re.split(r'\s{2,}', x)[0]: re.split(r'\s{2,}', x)[2] for x in f.read().splitlines()}
with open('taxonomies.txt') as f:
taxonomies = f.read().splitlines()
for taxonomy in taxonomies:
data = taxonomy.split('|')
tranlated = idvtaxo.get(data[1], 'Not Found')
print '%s|%s' % (taxonomy, tranlated)
IDVtaxo
中有很多行不包含nums
?顶部有四行!对于没有nums的行
,它会附加'notfound'
No。当分类法只包含IDVtaxo中存在的nums时,脚本工作得非常好。这些问题来自分类法中的NUM而不是IDVtaxo中的NUM。请尝试解决仍然不起作用的问题。忘掉分类法吧。使用示例输入和输出编写新代码。你甚至不需要使用文件,只要有一个表示IDVtaxo
的多行字符串。IDVtaxo
中有很多行不包含nums
?顶部有四行!对于没有nums的行
,它会附加'notfound'
No。当分类法只包含IDVtaxo中存在的nums时,脚本工作得非常好。这些问题来自分类法中的NUM而不是IDVtaxo中的NUM。请尝试解决仍然不起作用的问题。忘掉分类法吧。使用示例输入和输出编写新代码。您甚至不需要使用文件,只要有一个表示IDVtaxo
.factaxo={re.split(r'\s{2,}',x)[0]:re.split(r'\s{2,}',x)[2]代表f.read().splitlines()中的x就可以了^SyntaxError:无效syntaxOk显然您正在运行python3…修复了nowfactaxo={re.split(r'\s{2,}',x)[0]:re.split(r'\s{2,}',x)[2]for x in f.read().splitlines()}^SyntaxError:无效syntaxOk显然您正在运行python3…现已修复