- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个包含 1 到 n 个元素的列表。列表对象是:
[['Market F', 'Others', 'FR A', 'BR A', 'SBR A'],
['Market J', 'Competitor A', 'FR Y', 'BR I', 'SBR AJ'],
['Market L', 'Others', 'FR Q', 'BR A', 'SBR A'],
['Market M', 'Others', 'FR G', 'BR B', 'SBR B'],
['Market N', 'My Company', 'FR W', 'BR D', 'SBR H'],
['Market TT', 'Others', 'FR Q', 'BR A', 'SBR A'],
['Market U', 'Others', 'FR Q', 'BR A', 'SBR A'],
['Market F', 'Others', 'FR A', 'BR A'],
['Market J', 'Competitor A', 'FR Y', 'BR I'],
['Market L', 'Others', 'FR Q', 'BR A'],
['Market M', 'Others', 'FR G', 'BR B'],
['Market TT', 'Others', 'FR Q', 'BR A'],
['Market U', 'Others', 'FR Q', 'BR A'],
['Market F', 'Others', 'FR A'],
['Market J', 'Competitor A', 'FR Y'],
['Market L', 'Others', 'FR Q'],
['Market M', 'Others', 'FR G'],
['Market TT', 'Others', 'FR Q'],
['Market U', 'Others', 'FR Q'],
['Market F', 'Others'],
['Market J', 'Competitor A'],
['Market J']]
例如
['Market J']
是以下内容的子集:['市场 J', '竞争对手 A']
是以下子集:['Market J', 'Competitor A', 'FR Y']
这又是以下的子集:['市场 J', '竞争对手 A', 'FR Y', 'BR I']
这是以下子集:['市场 J', '竞争对手 A', 'FR Y', 'BR I', 'SBR AJ']
以相反的顺序,每个都是后者的超集。
我想做的是以字典的形式显示这种关系,例如:
{"['Market J']": [
['Market J', 'Competitor A'],
['Market J', 'Competitor A', 'FR Y'],
['Market J', 'Competitor A', 'FR Y', 'BR I']
]}
(键是我列表中的元素,不包括键本身将包含在另一个键的值中,例如 "['Market J']"
将是一个键,但 “['市场 J','竞争对手 A']”
不会。)
或更好的数据结构(如果您可以建议的话)。我会发布代码片段,但我想不出最佳方法。
最佳答案
你可以使用字典理解:
l = [...]
# Dictionary keys must be immutable
l = [tuple(x) for x in l]
# Taking only proper subsets
d = {key: [match for match in l if set(key).issubset(match) and not
set(match).issubset(key)] for key in l}
# Removing keys with no supersets
d = {k:v for k, v in d.items() if v}
# Removing keys which are supersets of other keys
d = {k:v for k, v in d.items() if k not in [item for sublist in d.values()
for item in sublist]}
print(d)
>>>{('Market TT', 'Others', 'FR Q'): [('Market TT', 'Others', 'FR Q', 'BR A', 'SBR A'), ('Market TT', 'Others', 'FR Q', 'BR A')],
('Market L', 'Others', 'FR Q'): [('Market L', 'Others', 'FR Q', 'BR A', 'SBR A'), ('Market L', 'Others', 'FR Q', 'BR A')],
('Market M', 'Others', 'FR G'): [('Market M', 'Others', 'FR G', 'BR B', 'SBR B'), ('Market M', 'Others', 'FR G', 'BR B')],
('Market U', 'Others', 'FR Q'): [('Market U', 'Others', 'FR Q', 'BR A', 'SBR A'), ('Market U', 'Others', 'FR Q', 'BR A')],
('Market F', 'Others'): [('Market F', 'Others', 'FR A', 'BR A', 'SBR A'), ('Market F', 'Others', 'FR A', 'BR A'), ('Market F', 'Others', 'FR A')],
('Market J',): [('Market J', 'Competitor A', 'FR Y', 'BR I', 'SBR AJ'), ('Market J', 'Competitor A', 'FR Y', 'BR I'), ('Market J', 'Competitor A', 'FR Y'), ('Market J', 'Competitor A')]}
关于python - 查找列表的多个子集或多个列表的单个超集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51096014/
在C#中,我可以通过base关键字访问基类,在java中,我可以通过super关键字访问它。在delphi中如何做到这一点?假设我有以下代码: type TForm3 = class(TF
在这件事上我已经把头撞到墙上好几次了。所以我希望在正确的方向上得到一点帮助。 我有一张 table ,上面有订单,一张 table 上有火车,一张 table 上有航类,一张 table 上有巴士。每
在 Python 中,假设我有以下代码: class SuperClass(object): def __init__(self, x): self.x = x
我希望这个 subview 扩展到它的父 View 之外,但是父 View 的边框正在切入 subview 。有没有办法防止这种情况? class TheView : UIView { let
我有一个标准的高斯函数,看起来像这样: def gauss_fnc(x, amp, cen, sigma): return amp * np.exp(-(x - cen) ** 2 / (2
例如,我有下一个类,带有有界类型参数: public class ItemContainer { void addItems(List items); } 在另一个带有参数的类中使用: pub
如何将此设置转换为命令? 结果如下: // Manual Compression (see the image above) Compressed Size: 12,647,451 bytes //
请建议在应用继承时如何使用@Wither/@With。 我有一个抽象类Parent和具体的Child。 Child 应该是不可变的。将 @Wither 放在两者上会给我两个错误: 构造函数 Child
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在尝试向服务器(虚拟托管)发出 HTTP2 请求,该服务器根据主机 header 值 (SNI) 提供 SSL 证书。 # conn = hyper.HTTP20Connection('h
我有一个应用程序,必须将大约 1300 万行、大约 10 个平均长度的字符串插入到嵌入式 HSQLDB 中。我一直在调整一些东西(批量大小、单线程/多线程、缓存/非缓存表、MVCC 事务、log_si
我想定义一个函数f(x, t::Type)根据 isa(x, t) 是否执行不同的行为.假设我想调用b1(x)如果是,b2(x)除此以外。 我知道我可以像这样在运行时进行动态检查: function
我正在使用 Hyper-V WMI Provider在 Hyper-V 中导入虚拟机,特别是使用 ImportVirtualSystemEx Msvm_VirtualSystemManagementS
这几个星期以来一直困扰着我,我没有结束对它的研究,因为我目前重载并且它让我落后于第一年的 CS (opengl) 大学类(class),这首先让我研究了这个:如何只用一个 for 循环绘制立方体的所有
我正在我的计算机(操作系统:Windows 8)上开发一个 WP8 应用程序。我需要安装一个 VM 才能拥有 linux。同时我需要使用我的 Windows Phone 模拟器。 我下载了 VMWar
我是一名优秀的程序员,十分优秀!