相关疑难解决方法(0)

检查另一个字符串中是否存在多个字符串

如何检查数组中的任何字符串是否存在于另一个字符串中?

喜欢:

a = ['a', 'b', 'c']
str = "a123"
if a in str:
  print "some of the strings found in str"
else:
  print "no strings found in str"
Run Code Online (Sandbox Code Playgroud)

该代码不起作用,只是为了展示我想要实现的目标.

python arrays string exists

338
推荐指数
6
解决办法
28万
查看次数

如何检查列表的所有元素是否与条件匹配?

我有一个包含20000个列表的列表.我使用每个列表的第3个元素作为标志.我希望在此列表上执行一些操作,只要至少有一个元素的标志为0,它就像:

my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....]
Run Code Online (Sandbox Code Playgroud)

在开始时,所有标志都是0.我使用while循环来检查至少一个元素的标志是否为0:

def check(list_):
    for item in list_:
        if item[2] == 0:
            return True
    return False
Run Code Online (Sandbox Code Playgroud)

如果check(my_list)返回True,那么我继续处理我的列表:

while check(my_list):
    for item in my_list:
        if condition:
            item[2] = 1
        else:
            do_sth()
Run Code Online (Sandbox Code Playgroud)

实际上,当我迭代它时,我想删除my_list中的一个元素,但是当我迭代它时,我不允许删除项目.

原始的my_list没有标志:

my_list = [["a", "b"], ["c", "d"], ["e", "f"], .....]
Run Code Online (Sandbox Code Playgroud)

因为我迭代它时无法删除元素,所以我发明了这些标志.但是它my_list包含很多项,并且while循环在每个for循环中读取所有项,并且它会消耗大量时间!你有什么建议吗?

python for-loop list while-loop

188
推荐指数
3
解决办法
26万
查看次数

Pythonic方法检查条件是否适用于列表的任何元素

我有一个Python列表,我想检查是否有任何元素是否定的.Specman有has()列表的方法:

x: list of uint;
if (x.has(it < 0)) {
    // do something
};
Run Code Online (Sandbox Code Playgroud)

itSpecman关键字在哪里依次映射到列表的每个元素.

我觉得这很优雅.我查看了Python文档,找不到类似的东西.我能想到的最好的是:

if (True in [t < 0 for t in x]):
    # do something
Run Code Online (Sandbox Code Playgroud)

我发现这相当不优雅.有没有更好的方法在Python中执行此操作?

python list

100
推荐指数
3
解决办法
9万
查看次数

如何检查列表中是否包含以下所有项目?

我发现,有一个相关的问题,关于如何查找列表中是否存在至少一个项目:
如何检查下列项目之一是否在列表中?

但是,查找列表中是否存在所有项目的最佳和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)

但在这里你必须做更多的打字.

还有其他解决方案吗?

python list inclusion

97
推荐指数
4
解决办法
11万
查看次数

一行检查另一个列表中是否存在列表中至少有一个项目?

让我说我有一个列表 a=[1,2,3] 我想知道其中至少有一个数字是否存在于另一个列表中,如下所示: b=[4,5,6,7,8,1] 换句话说,我想知道列表中是否存在1,2或3 b.我现在可以做点什么了

def func(a, b):
    for i in a:
       if i in b:
          return True
    return False
Run Code Online (Sandbox Code Playgroud)

但有可能有办法把它放在一条线上以使事情变得整洁吗?

python

48
推荐指数
6
解决办法
5万
查看次数

检查一个列表中的任何元素是否在另一个列表中

我正在尝试比较两个列表,如果第一个列表中的任何值在第二个列表中,则只需打印一条消息.

def listCompare():
  list1 = [1, 2, 3, 4, 5]
  list2 = [5, 6, 7, 8, 9]
  if list1 in list2:
    print("Number was found")
  else:
    print("Number not in list")
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想要if评估,True因为5在两个列表中.这不起作用,我不确定比较两个列表的最简单方法.

python list

33
推荐指数
5
解决办法
16万
查看次数

最简单的方法来检查列表中是否有(或不是)多个项目?

我想使用类似这样的语法:

if a in b
Run Code Online (Sandbox Code Playgroud)

但我想检查多个项目,所以我需要这样的事情:

if ('d' or 'g' or 'u') in a
Run Code Online (Sandbox Code Playgroud)

但我知道它不起作用.

所以我这样做了:

for i in a:
    for j in ['d','g','u']:
        if i==j
Run Code Online (Sandbox Code Playgroud)

它工作,但我想知道是否有一个更简单的方法.

python

6
推荐指数
2
解决办法
1万
查看次数

Python:使用列表推导按子串列表过滤列表

我认为这是一个简单的问题,所以我将直接举一个例子.

鉴于这两个列表:

x = ['a', 'ab', 'abc', 'bc', 'c', 'ac']
y = ['a', 'b']
Run Code Online (Sandbox Code Playgroud)

如何编写列表推导来过滤列表x,结果如下:

result = ['c']
Run Code Online (Sandbox Code Playgroud)

我想要一个列表推导,它将y中字符串的任何部分匹配排除在x中的字符串之外.例如,y中的'a'将匹配x中的'a','ab','abc'和'ac'.

这种理解只匹配整个字符串: result = [r for r in x if r not in y]

如果已经问过这个问题,我很乐意接受前一个答案的链接.也就是说,我还没有在SO上找到一个.

python string substring list-comprehension list

5
推荐指数
1
解决办法
1779
查看次数

查找Python中的另一个列表中是否存在任何列表元素

问题是关于更快,即.更pythonic,测试迭代中的任何元素是否存在于另一个iterable中的方法.

我想要做的是:

if "foo" in terms or "bar" in terms or "baz" in terms: pass

但显然这种方式重复了'in terms'子句并使代码膨胀,特别是当我们处理更多元素时.所以我想知道在python中是否有更好的方法.

python list

3
推荐指数
1
解决办法
1672
查看次数

检查列表中是否至少有一个数字在元组中的 Pythonic 方法

我有一个元组和一个列表:

t = (1, 2, 9)
l = range(2, 8)
Run Code Online (Sandbox Code Playgroud)

我想检查列表中是否至少有一个元素在元组中。我尝试使用:

if (2 or 3 or 4 or 5 or 6 or 7) in l:
    return True
Run Code Online (Sandbox Code Playgroud)

但它仅适用于数字2

现在我正在使用:

if 2 in l or 3 in l or 4 in l or 5 in l or 6 in l or 7 in l:
    return True
Run Code Online (Sandbox Code Playgroud)

但我认为这不是最好的方法。有没有办法缩小这段代码以使其更优雅?

python

1
推荐指数
1
解决办法
1260
查看次数

Python检查列表中的字符串是否列出

我很难理解"for"功能是如何工作的.

我想创建一个脚本,只输出list2中不在list1内的字符串.例如:

list1 = ["link1.com", "link2.com", "link3.com"]
list2 = ["link2.com", "link123.com"]

for list2 in list1:
    print(list2)
Run Code Online (Sandbox Code Playgroud)

{我的意图是打印的代码:

link123.com

但它改为从list1打印字符串}

我无法让它发挥作用.非常感谢帮助.我顺便使用python 3.

python python-3.x

-1
推荐指数
1
解决办法
3743
查看次数