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

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

使用一對鍵創建值的聯合

使用一對鍵創建值的聯合

開心每一天1111 2021-11-09 16:16:43
我正在研究社交媒體共同朋友問題,我選擇使用字典來代表他們。我被困在你讓一對用戶說 a 和 b 并創建一個具有他們朋友列表聯合的集合的部分,比如 ab -> [{b,c,d,e},{c,d,a }]注意:下面的代碼表示有一個用戶,他有一些存儲在字典中的朋友?,F在我想將每個用戶與他們朋友列表中的每個其他用戶配對,并創建一個集合列表,其中包含兩個用戶的朋友列表。users = {    'a': ['b', 'c', 'd', 'e'],    'b': ['c', 'd', 'a'],    'c': ['a', 'b'],    'd': ['a','b','e'],    'e': ['a','d']}
查看完整描述

1 回答

?
www說

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

您可以將列表的字典轉換為集合的字典,以便您可以對返回的兩個用戶的每個組合使用集合交集itertools.combinations來查找他們的共同朋友,并形成一個由用戶對的frozensets索引的集合字典:


from itertools import combinations

u = {k: set(l) for k, l in users.items()}

{frozenset((a, b)): u[a] & u[b] for a, b in combinations(u, 2)}

這將返回:


{frozenset({'b', 'a'}): {'c', 'd'},

 frozenset({'a', 'c'}): {'b'},

 frozenset({'a', 'd'}): {'b', 'e'},

 frozenset({'a', 'e'}): {'d'},

 frozenset({'b', 'c'}): {'a'},

 frozenset({'b', 'd'}): {'a'},

 frozenset({'b', 'e'}): {'a', 'd'},

 frozenset({'c', 'd'}): {'b', 'a'},

 frozenset({'c', 'e'}): {'a'},

 frozenset({'e', 'd'}): {'a'}}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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