相关疑难解决方法(0)

在Python中没有[]的列表理解

加入清单:

>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'
Run Code Online (Sandbox Code Playgroud)

join 必须采取迭代.

显然,join这个论点是[ str(_) for _ in xrange(10) ],这是一个列表理解.

看这个:

>>>''.join( str(_) for _ in xrange(10) )
'0123456789'
Run Code Online (Sandbox Code Playgroud)

现在,join这个论点只是str(_) for _ in xrange(10),不[],但结果是一样的.

为什么?是否str(_) for _ in xrange(10)也会产生一个列表或一个可迭代?

python list-comprehension

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

Python/线性时间字符串连接中str.join(iterable)方法是如何实现的

我正在尝试用str.joinPython实现我自己的方法,例如: ''.join(['aa','bbb','cccc'])returns 'aabbbcccc'。我知道使用 join 方法进行字符串连接会导致线性(结果的字符数)复杂性,并且我想知道如何做到这一点,因为在'+'for 循环中使用运算符会导致二次复杂性,例如:

res=''
for word in ['aa','bbb','cccc']:
  res = res +  word
Run Code Online (Sandbox Code Playgroud)

由于字符串是不可变的,因此每次迭代都会复制一个新字符串,从而导致运行时间成二次方。但是,我想知道如何在线性时间内完成它或找到''.join确切的工作原理。

我在任何地方都找不到线性时间算法,也找不到 str.join(iterable) 的实现。任何帮助深表感谢。

python string algorithm string-concatenation

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