相关疑难解决方法(0)

Python的任何和所有功能如何工作?

我想了解如何any()all()Python的内置函数的工作.

我试图比较元组,以便如果任何值不同,那么它将返回True,如果它们都是相同的,它将返回False.他们如何在这种情况下返回[False,False,False]?

d是一个defaultdict(list).

print d['Drd2']
# [[1, 5, 0], [1, 6, 0]]
print list(zip(*d['Drd2']))
# [(1, 1), (5, 6), (0, 0)]
print [any(x) and not all(x) for x in zip(*d['Drd2'])]
# [False, False, False]
Run Code Online (Sandbox Code Playgroud)

据我所知,这应该输出

# [False, True, False]
Run Code Online (Sandbox Code Playgroud)

因为(1,1)是相同的,(5,6)是不同的,并且(0,0)是相同的.

为什么所有元组的评估为False?

python

199
推荐指数
6
解决办法
26万
查看次数

生成器理解究竟是如何工作的?

生成器理解有什么作用?它是如何工作的?我找不到关于它的教程.

python

84
推荐指数
4
解决办法
5万
查看次数

测试Numpy数组是否包含给定行

是否有Pythonic和有效的方法来检查Numpy数组是否包含给定行的至少一个实例?"有效"是指它在找到第一个匹配行时终止,而不是遍历整个数组,即使已经找到了结果.

使用Python数组,这可以非常干净地完成if row in array:,但是这不像我对Numpy数组所期望的那样工作,如下所示.

使用Python数组:

>>> a = [[1,2],[10,20],[100,200]]
>>> [1,2] in a
True
>>> [1,20] in a
False
Run Code Online (Sandbox Code Playgroud)

但是Numpy数组给出了不同的,而且看起来很奇怪的结果.(__contains__方法ndarray似乎没有记录.)

>>> a = np.array([[1,2],[10,20],[100,200]])
>>> np.array([1,2]) in a
True
>>> np.array([1,20]) in a
True
>>> np.array([1,42]) in a
True
>>> np.array([42,1]) in a
False
Run Code Online (Sandbox Code Playgroud)

python numpy

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

删除列表单词组合python 3

我有一个字符串列表,我想搜索一个单词组合.如果组合不存在,则删除列表.是否有一个python列表理解可行?

word_list = ["Dogs love ice cream", "Cats love balls", "Ice cream", "ice cream is good with pizza", "cats hate ice cream"]

keep_words = ["Dogs", "Cats"] 

Delete_word = ["ice cream"]
Run Code Online (Sandbox Code Playgroud)

删除里面有冰淇淋的单词,但如果句子中有狗或猫,请保留它.

Desired_output = ["Dogs love ice cream", "Cats love balls", "cats hate ice cream"] 
Run Code Online (Sandbox Code Playgroud)

尝试此代码也试过AND和OR,但无法正确组合.

output_list = [x for x in  word_list if "ice cream" not in x]
Run Code Online (Sandbox Code Playgroud)

python arrays for-loop list

5
推荐指数
2
解决办法
111
查看次数

python对象的真假标准是什么?

我见过以下情况:

>>> def func(a):
...     if a:
...         print("True")
...
>>> a = [1, 2, 3]
>>> func(a)
True
>>> a == True
False
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种差异?

python python-3.x truthiness

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

为什么这个Python"any"函数不返回True?

我不明白为什么任何()没有按照我期望的方式工作.下面,我想说,如果城市列表中的任何城市都在短语.split()中,则返回True.但是为什么当phrase.split()['replacement', 'windows', 'in', 'seattle', 'wa']和'seattle'显然在短语.split()列表中时它返回false ?

>>> cities = ['seattle', 'san antonio', 'denver']
>>> phrase = 'replacement windows in seattle wa'
>>> any(cities) in phrase.split()
False
>>> 'seattle' in phrase.split()
True
Run Code Online (Sandbox Code Playgroud)

python string any python-3.x

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

我不完全理解这个脚本中的any()函数是如何工作的

我有一个脚本来检查列表中是否有一个或多个相同的项目。这是代码:

items = ["Blue", "Black", "Red"]

def isUnique(item):
    seen = list()
    return not any(i in seen or seen.append(i) for i in item)


print(isUnique(items))
Run Code Online (Sandbox Code Playgroud)

如果给定列表中的所有项目都是唯一的,则打印“True”;如果列表中的一个或多个项目是唯一的,则打印“False”。有人可以any()为我解释一下脚本的部分吗,因为我不完全理解它是如何工作的?

python any python-3.x

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

与 return 语句一起使用“elif”或连续的“if”语句是否更好?

这个问题特别涉及编码约定。我知道在这种情况下使用 if 或 elif 会产生相同的结果。只是想知道哪种是构造此函数的“正确”方法:

连续如果:

def can_take(self, selectedCourse):
    if selectedCourse.hasPassed():
        return False
    if selectedCourse.getPrereqs() != 'none':
        for prereq in selectedCourse.getPrereqs():
            if not self.courses[prereq].hasPassed():
                return False

    return True
Run Code Online (Sandbox Code Playgroud)

与埃利夫:

def can_take(self, selectedCourse):
    if selectedCourse.hasPassed():
        return False
    elif selectedCourse.getPrereqs() != 'none':
        for prereq in selectedCourse.getPrereqs():
            if not self.courses[prereq].hasPassed():
                return False

    return True
Run Code Online (Sandbox Code Playgroud)

python for-loop if-statement function object

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