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

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

按特定元素和該元素的子字符串對元組列表進行排序

按特定元素和該元素的子字符串對元組列表進行排序

慕斯709654 2021-09-11 13:31:02
我正在嘗試對元組列表進行排序。它們采用這種格式:("First Last", 3, 0)或者換句話說:(string, int, int)我想按字符串值(第一個元組元素)排序。我從這個很棒的答案中找到了如何按某個元素對元組列表進行排序:https : //stackoverflow.com/a/3121985/8887398這是我的代碼:# Yes, I do want to start from element 1 btwmyList[1:].sort(key=lambda tup: tup[0])當我的元組中只有名字作為字符串的值時,這很有效,例如:("George", 8, 3)然后我添加了姓氏,例如:("George Manning", 8, 3)它不再正確排序,所以我嘗試了這個:myList[1:].sort(key=lambda tup: (tup[0].split(" ")[1]))我非常有信心這會奏效。它沒有。我很困惑,因為我知道我的split方法正確地從調試中提取了姓氏。我究竟做錯了什么?如何按姓氏對我的列表進行排序?這是一個例子。是的,它們是假名:myList = [    ("NAME", "SOME LABEL 1", "SOME LABEL 2"),    ("Kevin Lee", 45, 4),    ("John Bowes", 35, 2),    ("George Smith", 8, 3),    ("Gina Marnico", 40, 3),    ("Alice Gordon", 48, 7),    ("Lee Jackson", 49, 7),    ("Adam Hao", 50, 4),    ("Adrian Benco", 23, 2),    ("Jessica Farner", 43, 20),    ("Greg Hyde", 34, 20),    ("Ryan Valins", 39, 7),    ("Gary Funa", 49, 7),    ("Sam Tuno", 15, 4),    ("Katy Sendej", 30, 2),    ("Jessica Randolf", 44, 8),    ("Gina Gundo", 47, 30)]myList[1:].sort(key=lambda tup: (tup[0].split(" ")[1]))我跳過第一個值,因為它是標簽信息。我希望該元素保持不變,而列表的其余部分按姓氏排序。
查看完整描述

3 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

如果您想按姓氏排序,這可能會起作用:


a = myList[1:]

a.sort(key=lambda tup: tup[0].split(" ")[1])

myList[1:] = a

結果:


[

    ('NAME', 'SOME LABEL 1', 'SOME LABEL 2'),

    ('Adrian Benco', 23, 2),

    ('John Bowes', 35, 2),

    ('Jessica Farner', 43, 20),

    ('Gary Funa', 49, 7),

    ('Alice Gordon', 48, 7),

    ('Gina Gundo', 47, 30),

    ('Adam Hao', 50, 4),

    ('Greg Hyde', 34, 20),

    ('Lee Jackson', 49, 7),

    ('Kevin Lee', 45, 4),

    ('Gina Marnico', 40, 3),

    ('Jessica Randolf', 44, 8),

    ('Katy Sendej', 30, 2),

    ('George Smith', 8, 3),

    ('Sam Tuno', 15, 4),

    ('Ryan Valins', 39, 7)

]

如果你想按姓氏排序,然后首先你可以這樣做:


a.sort(key=lambda tup: list(reversed(tup[0].split(" "))))


查看完整回答
反對 回復 2021-09-11
?
江戶川亂折騰

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

刪除標簽線,它的工作原理:


    myList.sort(key=lambda tup: (tup[0].split(" ")[1]))

結果 :


    ('Adrian Benco', 23, 2) 

    ('John Bowes', 35, 2) 

    ('Jessica Farner', 43, 20) 

    ('Gary Funa', 49, 7) 

    ('Alice Gordon', 48, 7) 

    ('Gina Gundo', 47, 30) 

    ('Adam Hao', 50, 4)

    ('Greg Hyde', 34, 20) 

    ('Lee Jackson', 49, 7) 

    ('Kevin Lee', 45, 4)

    ('Gina Marnico', 40, 3)

    ('Jessica Randolf', 44, 8) 

    ('Katy Sendej', 30, 2) 

    ('George Smith', 8, 3) 

    ('Sam Tuno', 15, 4) 

    ('Ryan Valins', 39, 7)


查看完整回答
反對 回復 2021-09-11
  • 3 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號