小编hex*_*rot的帖子

Python Lambda计数/循环函数

如果这是其他地方的问题,我很抱歉.通过谷歌和Stackforum搜索我没有找到任何可以推断出答案的内容; 但我觉得那部分就是我.

我正在尝试将lambdas作为一个概念,作为其中的一部分,我正在寻找使用它的方法.

所以,如果从功能的角度来看这是一个非常愚蠢的关于lambda的事情,请随时让我知道并解释.但无论哪种方式,我仍然想知道答案/仍然想知道如何用python语言做到这一点.

因此,出于测试目的,我有:

my_test = 'test_name'
testlist = ['test_name', 'test_name_dup', 'test_name_dup_1', 'test_name_dup_3']
Run Code Online (Sandbox Code Playgroud)

我正在寻找使用lambda创建一个循环的函数,并返回不在testlist中的第一个test_name_#.该功能最终将应用于文件名,但出于测试目的,我不得不远离实际读取文件名 - 给了我太多方法来搞砸了.

但my_test必须能够更改,测试列表将是文件路径列表.

所以,我正在寻找一个像以下的功能:

new_name = lambda x: my_test + '_' + str(x)
Run Code Online (Sandbox Code Playgroud)

但是初始值应该是x = 1,并且它应该继续,直到new_name不在testlist中.似乎:

bool(new_name not in testlist)
Run Code Online (Sandbox Code Playgroud)

可能是有用的东西.

但我无法想出一种方法将初始x设置为1,并使用(x + 1)循环直到bool为真.

我知道这是可能的,因为我发现一些CRAZY lambda示例循环遍历文件中的行.我只是无法理解它们(并且没有任何方式可以与它们一起玩,因为它们处理的是编程级别之外的事情.

在相关的说明中,我可以在此循环的开头添加值吗?(即我可以检查test_name,然后检查test_name_dup,然后检查test_name_dup_#)?

在此先感谢您的帮助!Lambdas(虽然非常酷)完全弄乱了我的脑袋.

python lambda

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

连接和存储长位串的最有效方法是什么?

我正在使用一个数据集,其中包含数万个可变长度的位串,最高可达32768.

数据源自一个列表,然后我将其连接成多个二进制位串,然后将其转换为INT.

为了演示我的方法:

import array

a = array.array('B', [4,5,13,4,4,9,12,13])
d = dict()

for i in set(a):
    d[i] = int('0b' + ''.join([str(int(i is b)) for b in a]), 2)

print d
Run Code Online (Sandbox Code Playgroud)

我的问题是:有没有一种更有效的方法来实现这一点,而不构造一个~32000长度的字符串,然后添加'0b'将其转换为INT?(我假设除了操作的源列表之外,我的方法至少使用了32000个字节)

另外,INT是最便宜的存储方式,假设我希望以允许逐位操作的形式存储它们吗?

python performance

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

标签 统计

python ×2

lambda ×1

performance ×1