gpt4 book ai didi

python - 如何根据列表值的重复性拆分列表列表?

转载 作者:行者123 更新时间:2023-12-01 03:56:06 25 4
gpt4 key购买 nike

假设我有一个表示坐标的格式的列表:

[['1', '1'], 
['2', '2'],
['3', '3'],
['1', '1'],
['5', '5'],
['6', '6'],
['7', '7'],
['5', '5'],
['8', '8'],
['9', '9'],
['10', '10'],
['8', '8']]

我想将此列表列表拆分为 3 个列表列表,以便第一个列表以列表 [1, 1] 开头,以列表 [1, 1] 结尾,第二个以列表 [5, 5] 开始,以列表 [5, 5] 结束,依此类推。

所以基本上,我想每次遇到与列表初始值相同的值时创建一个新列表。

知道如何实现这样的操作吗?

编辑。我进行了一些尝试,但没有得到预期的结果:

poly_pts = []
for pt in tlist:
x = 0
init_pt = tlist[0]
if pt != init_pt:
poly_pts.append(pt)
x += 1
elif pt == init_pt:
poly_pts.append(pt)
init_pt = tlist[x+1]

#

all_lists = []
init_pt = tlist[0]
for pt_i, pt in enumerate(tlist):
if pt == init_pt and pt_i != tlist.index(init_pt):
all_lists.append(tlist[tlist.index(init_pt):pt_i+1])

最佳答案

试试这个:

t = [['1', '1'], 
['2', '2'],
['3', '3'],
['1', '1'],
['5', '5'],
['6', '6'],
['7', '7'],
['5', '5'],
['8', '8'],
['9', '9'],
['10', '10'],
['8', '8']]


ix = 0
tmp = []

while ix < len(t):
tmp.append(t[ix:t.index(t[ix], ix+1)+1])
ix = t.index(t[ix], ix+1) + 1


>>> tmp
[[['1', '1'], ['2', '2'], ['3', '3'], ['1', '1']], [['5', '5'], ['6', '6'], ['7', '7'], ['5', '5']], [['8', '8'], ['9', '9'], ['10', '10'], ['8', '8']]]

我不检查任何错误,由您来实现。我使用 [].index,它给出列表中元素的索引,该函数还可以采用第二个参数来指定要从哪个索引搜索该元素。

关于python - 如何根据列表值的重复性拆分列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37442892/

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