亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Python:格式化列表中的數據

Python:格式化列表中的數據

PHP
www說 2023-11-09 21:23:44
我有很多這樣的數據列表:['Pardubicky kraj', 'Pardubice', 'Libi?any', 'Libi?any']['Královéhradecky kraj', 'Hradec Králové', 'Nechanice', 'Lubno u Nechanic']['Královéhradecky kraj', 'Hradec Králové', 'Nechanice', 'Nechanice']我需要創建一個字符串,如下所示:Královéhradecky kraj`  Hradec Králové    1 Nechanice      1a Lubo u Nechanic      1b NechanicePardubicky kraj  Pardubice    2 Libi?any      2a Libi?any換句話說,每個列表的最后一個元素是唯一的,但層次上的其他元素可能是相同的,并且在一致的情況下可以不重復。我還需要每個分層組按字母順序排序。我不知道該怎么做。我將不勝感激任何建議謝謝編輯:如果我再舉一些例子:['black', 'one', 'cat']['black', 'two', 'dog']['red', 'five', 'pig']['pink', 'one', 'snake']black 1 one  1a cat 2 two  2a dogred 3 five  3a pigpink 4 one  4a snake
查看完整描述

1 回答

?
胡說叔叔

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

我認為有一種更優雅的方式來寫這個。我還沒有找到時間來獲取這個。所以這里有一個快速但骯臟的版本,但仍然對你有用。


x = [['black', 'sugar', 'second', 'dog'],

     ['red', 'cane', 'five', 'pig'],

     ['black', 'sugar', 'first', 'cat'],

     ['pink', 'cute', 'one', 'snake'],

     ['pink', 'angry', 'one', 'donkey'],

     ['black', 'sugar', 'third', 'bird'],

     ['red', 'cane', 'five', 'monkey'],

     ['pink', 'angry', 'one', 'spider']]


x.sort()


print (x[0][0])

print ('  ' + x[0][1])

print ('   1 ' + x[0][2])

print ('     1a '+x[0][3])


level_2 = 1

level_3 = 'a'


for i,a in enumerate(x[1:]):

    if a[0] == x[i][0]:

        if a[1] == x[i][1]:

            if a[2] == x[i][2]:

                level_3 = chr(ord(level_3) + 1)

            else:

                level_2 +=1

                level_3 = 'a'

                print ('   ' + str(level_2) + ' ' + a[2])

        else:

            level_2 +=1

            level_3 = 'a'

            print ('  ' + a[1])

            print ('   ' + str(level_2) + ' ' + a[2])

    else:

        level_2 +=1

        level_3 = 'a'

        print (a[0])

        print ('  ' + a[1])

        print ('   ' + str(level_2) + ' ' + a[2])

    print ('     ' + str(level_2) + level_3 + ' ' + a[3])

其輸出是:


black

  sugar

   1 first

     1a cat

   2 second

     2a dog

   3 third

     3a bird

pink

  angry

   4 one

     4a donkey

     4b spider

  cute

   5 one

     5a snake

red

  cane

   6 five

     6a monkey

     6b pig


查看完整回答
反對 回復 2023-11-09
  • 1 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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