相关疑难解决方法(0)

了解切片表示法

我需要在Python的切片表示法上有一个很好的解释(引用是一个加号).

对我来说,这种符号需要一点点提升.

它看起来非常强大,但我还没有完全了解它.

python iterable list slice

3024
推荐指数
33
解决办法
159万
查看次数

如何在元素分隔符上拆分列表

是否有通过分隔元素将Python中的列表拆分为子列表的简洁而优雅的方法,例如['a', 'delim', 'b']- > [['a'], ['b']]

这是一个例子:

ldat = ['a','b','c','a','b','c','a','b']
dlim = 'c'
lspl = []   # an elegant python one-liner wanted on this line!
print(lspl) # want: [['a', 'b'], ['a', 'b'], ['a', 'b']]
Run Code Online (Sandbox Code Playgroud)

看似过于复杂的工作示例

我已经调查了关于stackoverflow的文档和相关问题 - 下面引用了很多 - 这些都没有回答我的问题,并且总结了我的研究如下:几种方法确实产生了所需的输出,但是冗长而错综复杂,以及发生了什么(分裂了列表)并不是很明显 - 你真的不得不眯着眼睛.

还有更好的方法吗?我主要关注初学者的可读性(例如教学),规范/'Pythonic'方法,其次是最有效的方法(例如,时间速度).理想情况下,答案将解决Python 2.7和3.x.

有条件的.append()

循环遍历列表并附加到最​​后一个输出列表或添加新的输出列表.基于包含分隔符的示例,但已更改为排除它.我不确定如何使它成为一个单行,或者如果这甚至是可取的.

lspl = [[]]
for i in ldat:
    if i==dlim:
        lspl.append([])
    else:
        lspl[-1].append(i)
print(lspl) # prints: [['a', 'b'], ['a', 'b'], ['a', 'b']]
Run Code Online (Sandbox Code Playgroud)

与itertools.groupby

将itertools.groupby与列表理解相结合.许多答案包括分界符,这是基于那些排除分界符的. …

python split list

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

标签 统计

list ×2

python ×2

iterable ×1

slice ×1

split ×1