第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python 實現(xiàn)一個求解當前數(shù)據(jù)所有子項的方法

python 實現(xiàn)一個求解當前數(shù)據(jù)所有子項的方法

函數(shù)式編程 2019-02-18 19:52:36
假設數(shù)據(jù)結構是這樣的:有多條數(shù)據(jù),每條數(shù)據(jù)都有屬性parent(指向它的所屬上級id),自身的唯一標識id。 class data parent id 當我拿出其中一條數(shù)據(jù)的時候,用一個方法計算出所有下級數(shù)據(jù)。就好比中國行政區(qū)數(shù)據(jù)一樣,當我拿到廣東省的時候,下面的市級,縣級都要得到,如果縣級下面還有分級也要一并拿到。 我寫了一些代碼,都太丑陋了,似乎是要用遞歸,求教一下有沒有什么好的思路?
查看完整描述

3 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

這個問題可以轉換成N叉樹的遍歷,將某個節(jié)點的所有子節(jié)點計算出來。

    def return_all_children(self):
        """
        返回所有的子項
        :return:
        """
        root = self
        if not root:
            return []
        que = []  # 保存節(jié)點的隊列
        res = []  # 保存結果的列表
        que.append(root)  #
        while len(que):  # 判斷隊列不為空
            length = len(que)
            sub = []  # 保存每層的節(jié)點的值
            for i in range(length):
                current = que.pop(0)  # 出隊列的當前節(jié)點
                print(current)
                sub.append(current)
                for child in current.return_children:  # 所有子結點入隊列
                    que.append(child)
            res.append(sub)  # 把每層的節(jié)點的值加入結果列表
        return res
查看完整回答
反對 回復 2019-03-01
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

儲存空間夠大的話可以建立一個字典
假如你的數(shù)據(jù)是個list名字叫CN(中國所有省市縣...)

parent_d = {}
for item in CN:
    parent = item['parent']
    if parent in parent_d:
        parent_d[parent].append(item['id'])
    else:
        parent_d[parent] = [item['id']]

之后遍歷一下

def get_all_children(city_id, parent_d):
    if city_id not in parent_d or not city_id:
        return []
    result = []
    temp_parent = [city_id]
    while temp:
        cur_id = temp_parent.pop(-1)
        result += parent_d[cur_id]
        temp_parent = parent_d[cur_id] + temp_parent
    return result
查看完整回答
反對 回復 2019-03-01
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

貼一下全一點的例子

查看完整回答
反對 回復 2019-03-01
  • 3 回答
  • 0 關注
  • 692 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號