我发现,有一个相关的问题,关于如何查找列表中是否存在至少一个项目:
如何检查下列项目之一是否在列表中?
但是,查找列表中是否存在所有项目的最佳和pythonic方法是什么?
通过文档搜索,我找到了这个解决方案:
>>> l = ['a', 'b', 'c']
>>> set(['a', 'b']) <= set(l)
True
>>> set(['a', 'x']) <= set(l)
False
Run Code Online (Sandbox Code Playgroud)
其他解决方案是:
>>> l = ['a', 'b', 'c']
>>> all(x in l for x in ['a', 'b'])
True
>>> all(x in l for x in ['a', 'x'])
False
Run Code Online (Sandbox Code Playgroud)
但在这里你必须做更多的打字.
还有其他解决方案吗?
有没有快速的方法来检查一个集合是否完全包含另一个集合?
就像是:
>>>[1, 2, 3].containsAll([2, 1])
True
>>>[1, 2, 3].containsAll([3, 5, 9])
False
Run Code Online (Sandbox Code Playgroud) 我有一个元组列表,列表的长度可以在 ~8 - 1000 之间变化,具体取决于元组的长度。列表中的每个元组都是唯一的。元组的长度为 N,其中每个条目都是一个通用词。
一个示例元组的长度可以是 N (Word 1, Word 2, Word 3, ..., Word N)
对于列表中的任何元组,所述元组中的元素 j 将是''或Word j
一个非常简单的带有字母的例子是
l = [('A', 'B', '', ''), ('A', 'B', 'C', ''),
('', '', '', 'D'), ('A', '', '', 'D'),
('', 'B', '', '')]
Run Code Online (Sandbox Code Playgroud)
每个元组的每个位置要么具有相同的值,要么为空。我想删除所有''在同一位置的另一个元组中具有所有非值的元组。例如,(A,B,'','')包含所有非''值,(A,B,C,'')因此应删除。
filtered_l = [(A,B,C,''),(A,'','',D)]
Run Code Online (Sandbox Code Playgroud)
元组的长度总是相同的(不一定是 4)。元组的长度将在 2-10 之间。
执行此操作的最快方法是什么?
l = ["a", "b", "c", "d", "e"]
if "a" in l and "b" in l and "c" in l and "d" in l:
pass
Run Code Online (Sandbox Code Playgroud)
写这个if语句的简短方法是什么?
尝试:
if ("a" and "b" and "c" and "d") in l:
pass
Run Code Online (Sandbox Code Playgroud)
但这似乎是不正确的.什么是正确的方法?Python 3
是否有内置的Pythonic方法来确定一个列表是否完全包含另一个列表的内容,包括重复的条目但忽略了项目的顺序?
>>> l1 = [2, 2, 3]
>>> l2 = [2, 2]
>>> l3 = [3, 2]
>>> l4 = [2, 2, 2]
>>> l5 = [2, 5, 2]
>>> is_superset(l1, l2)
True
>>> is_superset(l1, l3)
True
>>> is_superset(l1, l4)
False
>>> is_superset(l1, l5)
False
Run Code Online (Sandbox Code Playgroud) 好吧,基本上我必须检查一个字符串是否与另一个字符串具有相同的字母。这两个字符串都是通过input()获得的。
我不想再次检查某个字母是否在另一个字符串中,因此如果我已经检查了该字母,我想跳到下一个字母。
我现在的代码是这样的:
str1, str2 = list(input()), list(input())
if len(str1) > len(str2):
str = str1
else:
str = str2
for x in str:
c = 0
if x in str2:
c += 1
if c != 0:
print("Both have the same letters!")
else:
print("Nope there are some letters missing..")
Run Code Online (Sandbox Code Playgroud)
我不知道我是否应该使用列表而不是使用计数器..请详细解释解决方案或一些高质量的指导将非常感激!<3
我的问题是,如何检查列表列表的所有元素是否都在另一个列表列表中?或者用更好的措辞,您如何检查一个列表列表是否是另一个列表列表的子集?下面发布的答案仅在您有一个字符串列表时才有效,但该答案不适用于我的情况。
我尝试过的事情是这样的:
if all(item in list1 for item in list2):
Run Code Online (Sandbox Code Playgroud)
这不起作用。
python ×7
list ×4
algorithm ×1
if-statement ×1
inclusion ×1
performance ×1
python-3.x ×1
set ×1
tuples ×1