相关疑难解决方法(0)

如何检查列表是否为空?

例如,如果传递以下内容:

a = []
Run Code Online (Sandbox Code Playgroud)

如何检查是否a为空?

python list

3235
推荐指数
27
解决办法
254万
查看次数

在python中计算字典中的关键字数量

我在字典中有一个单词列表,其值为=关键字的重复,但我只想要一个不同单词的列表,所以我想计算关键字的数量.有没有办法计算关键字的数量,还是有另一种方法我应该寻找不同的单词?

python dictionary count keyword

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

如何断言两个列表在Python中包含相同的元素?

在编写测试用例时,我经常需要声明两个列表包含相同的元素而不考虑它们的顺序.

我一直在将列表转换为集合.

有没有更简单的方法来做到这一点?

编辑:

正如@MarkDickinson指出的那样,我可以使用TestCase.assertItemsEqual.

TestCase.assertItemsEqualPython2.7中的新增注释.如果您使用的是旧版本的Python,则可以使用unittest2 - Python 2.7新功能的后端.

python unit-testing

138
推荐指数
4
解决办法
12万
查看次数

迭代2维python列表

我创建了一个2维数组,如:

rows =3
columns= 2
mylist = [[0 for x in range(columns)] for x in range(rows)]
for i in range(rows):
    for j in range(columns):
        mylist[i][j] = '%s,%s'%(i,j)
print mylist
Run Code Online (Sandbox Code Playgroud)

打印此列表会显示输出:

[  ['0,0', '0,1'], ['1,0', '1,1'], ['2,0', '2,1']   ]
Run Code Online (Sandbox Code Playgroud)

其中每个列表项都是"行,列"格式的字符串

现在给出这个列表,我想按顺序迭代它:

'0,0'
'1,0'
'2,0'
'0,1'
'1,1'
'2,1'
Run Code Online (Sandbox Code Playgroud)

这是迭代第一列然后第二列,依此类推.我如何用循环做到这一点?

这个问题属于纯python列表,而标记为相同的问题属于numpy数组.他们显然是不同的

python loops multidimensional-array

39
推荐指数
4
解决办法
21万
查看次数

为什么Python的'len'函数比__len__方法更快?

在Python中,len是一个通过调用对象的__len__方法来获取集合长度的函数:

def len(x):
    return x.__len__()
Run Code Online (Sandbox Code Playgroud)

所以我希望直接呼叫__len__()至少能够达到最快速度len().

import timeit

setup = '''
'''

print (timeit.Timer('a="12345"; x=a.__len__()', setup=setup).repeat(10))
print (timeit.Timer('a="12345"; x=len(a)',      setup=setup).repeat(10))
Run Code Online (Sandbox Code Playgroud)

演示链接

但使用上述代码进行测试的结果显示len()更快.为什么?

python python-internals

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

Python:检查文件夹中是否有多个文件的最快方法

我正在寻找一种非常快速的方法来检查文件夹是否包含两个以上的文件。

我担心如果/path/len(os.listdir('/path/')) > 2中有很多文件,可能会变得非常慢,特别是因为该函数一次会被多个进程频繁调用。

python

9
推荐指数
2
解决办法
494
查看次数

'in' 表示复杂度最低的两个排序列表

我有两个排序列表,例如

a = [1, 4, 7, 8]
b = [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

我想知道每个项目a是否在b. 对于上面的例子,我想找到

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

(或具有索引其中a_in_bTrue将细太)。

现在,ab都非常大,因此复杂性是一个问题。如果M = len(a)N = len(b)我怎样才能以比M * O(N)利用两个列表都已排序的事实更低的复杂性来做到这一点?

python

8
推荐指数
3
解决办法
211
查看次数

Python中`len()`函数的重要注意事项是什么?

可能重复:
len()函数的开销

是否len()遍历列表中的对象,然后返回自己的计数?因此给它一个O(n).

要么....

python列表是否保留了附加到它并从中删除的任何对象的计数,然后在len()调用时返回这个"count" ?因此给它O(1).

python big-o

7
推荐指数
2
解决办法
3712
查看次数

Python:如何执行`len()`

可能重复:
len()函数的开销

Python如何计算列表的长度(使用len()函数)?它是通过一个forwhile 循环来做同样的事情还是有一些内部变量来存储列表的长度?

python

6
推荐指数
3
解决办法
520
查看次数

len()内置函数是否遍历集合来计算其长度,还是访问集合的属性?

Python有许多内置函数,len()是其中之一.

返回对象的长度(项目数).参数可以是序列(例如字符串,字节,元组,列表或范围)或集合(例如字典,集合或冻结集).

如果集合和序列是对象,它们可以保存一个length可以在每次更改时更新的属性.访问此属性将是检索集合长度的快速方法.

另一种方法是迭代集合并计算动态项目的数量.

怎么len()计算长度?通过迭代或属性访问?其中一个,没有,两个,其他方法?

python python-internals

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