我想为我的作品制作一个应用程序,所以我记下发送给我的客户的软件包 所以我有一个包含我的客户列表及其代码的字典 我想要我的应用程序要做的是导入多个代码数字与我的字典中的键进行比较并获取项目....因为代码编号不能是整数我必须操纵它们作为一个字符串将它们与一个字符串组合起来生成器并将结果返回
farmcod = { "0039":"ΑΤΣΑΛΗ Μ.","0056":"ΒΑΡΔΙΑΜΠΑΣΗΣ Κ.",
"0138":"ΒΟΥΜΒΟΥΡΑΚΗ Α.","0047":"ΓΕΩΡΓΟΥΛΑΚΗ Κ.","0087":"ΓΟΥΜΕΝΑΚH
Κ.","0035":"ΓΥΠΑΡΗ Ε.",}
def chunker(seq, size):
return [seq[pos:pos + size] for pos in range(0, len(seq), size)]
kodfain = input ('pharmacy key : ')
for group in chunker(kodfain, 4):
print (group,",",sep="",end='')
所以,如果我输入006900780054我得到===> 0069,0078,0054,
我的问题是我如何比较这3个生成器的结果,将它们与字典的键进行比较并获取项目?
答案 0 :(得分:0)
farmcod = {"0039": "ΑΤΣΑΛΗ Μ.", "0056": "ΒΑΡΔΙΑΜΠΑΣΗΣ Κ.", "0138": "ΒΟΥΜΒΟΥΡΑΚΗ Α.",
"0047": "ΓΕΩΡΓΟΥΛΑΚΗ Κ.", "0087": "ΓΟΥΜΕΝΑΚH Κ.", "0035": "ΓΥΠΑΡΗ Ε.", }
# this returns a list, not a generator. Shouldn't matter unless your dataset is huge
def chunker(seq, size):
return [seq[pos:pos + size] for pos in range(0, len(seq), size)]
kodfain = "006900780054"
for group in chunker(kodfain, 4):
code = farmcod.get(group, None)
if code:
# do something with the code
print(code)
else:
# it wasn't found
print('code not found for', group)
一些注意事项:
farmcod
,那么您可能希望使用try-catch
块而不是if-else
块。它可能会更快。chunker
函数返回一个列表,而不是生成器。如果您的数据集很小,那就没关系。如果没有,研究发电机功能。