相关疑难解决方法(0)

加入列表中的元素对 - Python

我知道列表可以连接成一个长字符串,如:

x = ['a', 'b', 'c', 'd']
print ''.join(x)
Run Code Online (Sandbox Code Playgroud)

显然这会输出:

'abcd'
Run Code Online (Sandbox Code Playgroud)

但是,我想要做的只是加入列表中的第一个和第二个字符串,然后加入第三个和第四个,依此类推.简而言之,从上面的例子中取而代之的是输出:

['ab', 'cd']
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来做到这一点?我还应该提到列表中字符串的长度是不可预测的,列表中的字符串数也是如此,尽管字符串的数量总是均匀的.所以原始列表也可以是:

['abcd', 'e', 'fg', 'hijklmn', 'opq', 'r'] 
Run Code Online (Sandbox Code Playgroud)

python string join list

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

用 O(1) 空间逐行读取数字

许多编码挑战在同一行中有多个数字,通常第一行告诉多数字行中有多少个数字:

4
31 415 9 26
Run Code Online (Sandbox Code Playgroud)

通常我只是读取整行,然后.split()将字符串映射到数字。

但是有没有一种好方法可以一次读取整行,而是一次读取一个数字呢?为了节省内存,要么因为我不能或不想整行读入内存。我只想使用 O(1) 空间(假设数字很小/有界,所以它们的大小是 O(1) )。不必绝对最小,例如,如果解决方案在内部一次读取完整的 4 KB 内存页,那没关系,仍然是 O(1) 并且相对较小。对于用例,请考虑一行上有数百万个数字,并且内存限制比方说低于 1 MB。

在 C++ 中我会这样做:

4
31 415 9 26
Run Code Online (Sandbox Code Playgroud)

我编写了这个生成器,它接受一个文件对象并为我提供一个字符串迭代器。对于上面的示例,它生成字符串'4''31''415''9''26'它一次读取一个字符,并按照以下确定的空格字符进行分割.isspace()

def split(file):
    value = []
    while char := file.read(1):
        if char.isspace():
            if value:
                yield ''.join(value)
            value.clear()
        else:
            value.append(char)
    if value:
        yield ''.join(value)
Run Code Online (Sandbox Code Playgroud)

但这当然是极其复杂和缓慢的,我什至不知道这种str.isspace用法是否等同于str.split空白。它只是说明了实现我想要的目标的一种方法。

编辑:这是一种更简单的方法,但仍然比我想要的更复杂和缓慢。我正在寻找一些内置的方法,以 …

python memory space-complexity

5
推荐指数
0
解决办法
201
查看次数

读取文件直到python中的特定字符

我当前正在开发一个应用程序,该应用程序需要从文件中读取所有输入,直到遇到某个字符为止。

通过使用代码:

file=open("Questions.txt",'r')
c=file.readlines()
c=[x.strip() for x in c]
Run Code Online (Sandbox Code Playgroud)

每次遇到条带时\n,都会将其从输入中删除并视为list中的字符串c

这意味着每一行都被分成列表的一部分c。但是我想列出一个遇到任何特殊字符的列表

如果输入文件包含以下内容:

1.Hai
2.Bye\-1
3.Hello
4.OAPd\-1
Run Code Online (Sandbox Code Playgroud)

然后我想得到一个清单 c=['1.Hai\n2.Bye','3.Hello\n4.OApd']

请帮助我做到这一点。

python python-3.x

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

标签 统计

python ×3

join ×1

list ×1

memory ×1

python-3.x ×1

space-complexity ×1

string ×1