构建类以遍历返回的结构

时间:2018-07-18 08:50:11

标签: python class

我正在尝试构建一个包含三个信息的数据结构:一个book名称,一个page数字和一个sentence

我目前正在制作带有两个键coordinates[book][page] = sentence的字典。但是,我想遍历句子,而不必遍历bookpage键(因为我需要随机访问它们的顺序)。

为了可重复性,这是我正在创建的数据结构:

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

我实际上想做的是,在sampledSentancesbook信息之间进行迭代。

从阅读(和从question I asked yesterday开始)看来,我应该构建一个可迭代的类对象。

这是我尝试过的方法,但是我不确定如何使用它来遍历page,甚至不确定这是否是正确的方法:

sampledSentances

我是Python类的新手,将不胜感激

1 个答案:

答案 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)