gpt4 book ai didi

python - 用 Python 分离列表数据

转载 作者:行者123 更新时间:2023-11-28 22:10:21 24 4
gpt4 key购买 nike

我有一个包含多个字符串的列表 ),我想将它们分开:

主列表:

[
GENERAL NOTES & MISCELLANEOUS DETAILS_None_None_None,
STR_XX_XX_0001,
STR_XX_XX_0002,
STR_XX_XX_0003,
GENERAL ARRANGEMENT_None_None_None,
STR_XX_XX_10001.0,
STR_XX_XX_10002.0,
STR_XX_XX_10003.0,
STR_XX_XX_10004.0,
STR_XX_XX_10005.0,
STR_XX_XX_10006.0

]

如果在主列表中找到字符串 "_None_None_None",它可以将此数据添加到新的空列表中,并将剩余的 STR_XX_XX_0001 值添加到另一个列表中,直到找到为止另一个带有“_None_None_None”的字符串并执行相同的操作。

我已经尝试过,但我认为当它找到下一个带有 "_None_None_None" 的字符串时,我将无法中断我的循环。只是想办法,不确定逻辑是否正确。

    empty1 = []
empty2 = []

for i in MainList:
if "_None_None_None" in i:
empty1.append(i)
# Need help on hear onwards
else:
while "_None" not in i:
empty2.append(i)
break

我期待两个列表中的输出结果。像这样:

list 1:

[
GENERAL NOTES & MISCELLANEOUS DETAILS_None_None_None,
GENERAL ARRANGEMENT_None_None_None
]

list 2:

[
[STR_XX_XX_0001,STR_XX_XX_0002,STR_XX_XX_0003],[STR_XX_XX_10001.0,STR_XX_XX_10002.0,STR_XX_XX_10003.0,STR_XX_XX_10004.0,STR_XX_XX_10005.0,STR_XX_XX_10006.0]
]

List2 是带有子列表的列表

最佳答案

你让它有点太复杂了,你可以让列表在没有内部 while 循环的情况下运行。只需为循环中出现的每个元素做出决定:

empty1 = []
empty2 = []

for i in MainList:
if "_None_None_None" in i:
empty1.append(i)
else:
empty2.append(i)

这会给你两个列表:

> empty1
> ['GENERAL NOTES & MISCELLANEOUS DETAILS_None_None_None',
'GENERAL ARRANGEMENT_None_None_None']

> empty2
> ['STR_XX_XX_0001',
'STR_XX_XX_0002',
'STR_XX_XX_0003',
'STR_XX_XX_10001.0',
'STR_XX_XX_10002.0',
'STR_XX_XX_10003.0',
'STR_XX_XX_10004.0',
'STR_XX_XX_10005.0',
'STR_XX_XX_10006.0']

根据评论编辑

如果评论者是正确的并且您想将非 NONE 值分组到单独的列表中,那么这是 itertools.groupby 的一个很好的用例.它将以方便、高效的方式为您创建组,并且您的循环看起来几乎相同:

from itertools import groupby

empty1 = []
empty2 = []

for k, i in groupby(MainList, key = lambda x: "_None_None_None" in x):
if k:
empty1.extend(i)
else:
empty2.append(list(i))

这将为您提供相同的 empty1empty2 将不是列表的列表:

[['STR_XX_XX_0001', 'STR_XX_XX_0002', 'STR_XX_XX_0003'],
['STR_XX_XX_10001.0',
'STR_XX_XX_10002.0',
'STR_XX_XX_10003.0',
'STR_XX_XX_10004.0',
'STR_XX_XX_10005.0',
'STR_XX_XX_10006.0']]

关于python - 用 Python 分离列表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56864440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com