请根据输入的原始列表,输出目标列表:
原始列表:[1,2,None,None,None,None,None,None,3,4,5,6,None,None,None,None,7,8,9,10]
目标列表: [1,2] [3,4,5,6] [7,8,9,10]
1
princelai 2021-12-10 10:24:07 +08:00 2
from itertools import groupby
[list(g[1]) for g in groupby(ll,key=lambda x:x is not None) if g[0]] |
3
learningman 2021-12-10 10:52:31 +08:00 3
建议自己的作业自己写,楼上那哥们 pythonic 的写法你能理解吗
|
4
ma6254 2021-12-10 11:31:46 +08:00
自己的作业自己写(滑稽
|
5
deplivesb 2021-12-10 11:58:09 +08:00
v2 已经沦陷为百度知道了吗
|
6
stimw 2021-12-10 13:07:23 +08:00 via Android
为什么大半年前就在问作业了...大半年后还停留在这种问题
|
7
bytesfold 2021-12-10 13:34:04 +08:00 1
@learningman 并不觉得 pythonic ,如果是公司代码不加备注基本无法维护
|
8
JasonEWNL 2021-12-10 14:01:22 +08:00
@deplivesb 高级点,Way to Overflow 。(
@going 话说回来鉴于是作业,或可回归不依赖任何库的一般思路,日后有机会亦能写出不一定最具效率但较易维护的代码。 ``` il = [1, 2, None, None, None, None, None, None, 3, 4, 5, 6, None, None, None, None, 7, 8, 9, 10] ol = [[]] for i in il: if i: ol[-1].append(i) elif ol[-1]: ol.append([]) print(ol) # [[1, 2], [3, 4, 5, 6], [7, 8, 9, 10]] ``` |
9
keepeye 2021-12-10 14:57:39 +08:00
遍历一遍不就可以了吗?这题是送分题
|
10
cnrting 2021-12-10 15:06:16 +08:00 via iPhone 1
print(il[0:2],il[8:12],il[16:20]) 🐶
|
12
fml87 2021-12-10 15:43:42 +08:00
lst = [1,2,None,None,None,None,None,None,3,4,5,6,None,None,None,None,7,8,9,10]
[*map(eval,re.split(",,+",re.sub("[^0-9,]", "",str(lst) )))] |
13
28Sv0ngQfIE7Yloe 2021-12-10 16:57:15 +08:00 1
为啥我感觉 op 没有提问的礼貌
|