我正在尝试构建一个包含三个信息的数据结构:一个book
名称,一个page
数字和一个sentence
。
我目前正在制作带有两个键coordinates[book][page] = sentence
的字典。但是,我想遍历句子,而不必遍历book
和page
键(因为我需要随机访问它们的顺序)。
为了可重复性,这是我正在创建的数据结构:
pages = [12, 41, 50, 111, 1021, 121]
bookCodes = ['M', 'P', 'A', 'C', 'A', 'M']
sampledSentances = ['THISISASENTANCE',
'ANDHEREISONEMOREEXAMP',
'ALLFROMDIFFERENTBOOKS',
'ANDFROMDIFFERENTPAGES',
'MOSLTYTHESAMELENGTHSS',
'BUTSOMEWILLBABITSHORT'
]
from collections import defaultdict
coordinates = defaultdict(dict)
for b, p, s in zip(bookCodes, pages, sampledSentances):
coordinates[b][p] = s
print coordinates
我实际上想做的是,在sampledSentances
和book
信息之间进行迭代。
从阅读(和从question I asked yesterday开始)看来,我应该构建一个可迭代的类对象。
这是我尝试过的方法,但是我不确定如何使用它来遍历page
,甚至不确定这是否是正确的方法:
sampledSentances
我是Python类的新手,将不胜感激
答案 0 :(得分:1)
您将generator function用于此任务
def iterSentances(bookCodes, pages, sampledSentances):
zz = list(zip(bookCodes, pages, sampledSentances))
random.shuffle(zz)
for ss in zz:
yield ss
for b,p,s in iterSentances(bookCodes, pages, sampledSentances):
print(b,p,s)