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

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

Python:如何按下一項值鏈接列表中的元組

Python:如何按下一項值鏈接列表中的元組

森林海 2022-09-06 17:00:15
如何從Python 3中的元組列表中獲得預期結果?[('I', 'N'),('love', 'V'),('Miley', 'N'),('Cyrus', 'N'),('but', 'ADV'),('hate', 'V'),('Liam', 'N'),('Hemsworth', 'N')]預期成果:['I', 'love', 'Miley Cyrus', 'but', 'hate', 'Liam Hemsworth']
查看完整描述

2 回答

?
心有法竹

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

您可以使用 itertools.groupby 按第二個元素進行分組,然后提取每個組的第一個元素:


from itertools import groupby

from operator import itemgetter


data = [('I', 'N'), ('love', 'V'), ('Miley', 'N'), ('Cyrus', 'N'), ('but', 'ADV'), ('hate', 'V'), ('Liam', 'N'),

        ('Hemsworth', 'N')]


result = [' '.join(t[0] for t in group) for k, group in groupby(data, key=itemgetter(1))]


print(result)

輸出


['I', 'love', 'Miley Cyrus', 'but', 'hate', 'Liam Hemsworth']

上面的列表理解等效于以下 for 循環:


result = []

for k, group in groupby(data, key=itemgetter(1)):

    result.append(' '.join(t[0] for t in group))


查看完整回答
反對 回復 2022-09-06
?
守候你守候我

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

用itertools.groupby


前任:


from itertools import groupby

data = [('I', 'N'),('love', 'V'),('Miley', 'N'),('Cyrus', 'N'),('but', 'ADV'),('hate', 'V'),('Liam', 'N'),('Hemsworth', 'N')]


result = [" ".join(m for m, _ in v) for k, v in groupby(data, lambda x: x[1])]

print(result)

輸出:


['I', 'love', 'Miley Cyrus', 'but', 'hate', 'Liam Hemsworth']


查看完整回答
反對 回復 2022-09-06
  • 2 回答
  • 0 關注
  • 89 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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