猿问

在python中捕获列表中的多组项目

我在python中有一个列表。假设列表的名称是record

我知道record[0]给了我第一个记录,我知道record[3:5]给了我第三个和第四个记录。

如果我需要在第一record[0]record[12:15]record[35:39]同一个列表?

谢谢!

更新 #1:改写。

我有这个包含 120 个元素的列表。此列表表示非规范化表。

我需要将列表拆分成多个较小的列表,以便对信息进行规范化。

上面的问题是较小列表之一的逻辑,因此我可以将它们注入数据帧,以便将记录添加到表 ( df.to_sql) 中。谢谢。


一只名叫tom的猫
浏览 181回答 3
3回答

偶然的你

如果你有很长的子范围列表要提取,或者你想要一个漂亮的语法,你可以定义一个函数来从数组中获取多个子范围:from itertools import chaindef extract(array,ranges):    return list(chain( * (array[s:e] for s,e in ranges.items()) ))array    = list(range(100,200))subArray = extract(array,{ 0:1, 12:15, 35:39 })print(subArray) # [100, 112, 113, 114, 135, 136, 137, 138]

摇曳的蔷薇

我不明白你在问什么。如果您需要record[0],record[12:15]和record[35:39],那么,它们就在那里。去拿他们。是什么阻止了你?您是否需要将这些元素组合到它们自己的较小列表中?

桃花长相依

我不确定你的确切问题是什么,因为你没有提到,但如果你试图将相似的项目组捕获在一起但还需要一个列表,为什么不使用一个以字符串作为键和列表作为值的字典。还有其他方法可以使用 functools 或 iter utils例子items = [1,2,3,1,2,4,5,6,7,8,2,1,3,4,1,2,1,1]dict_of_keys = {}for i in items:    if i not in dict_of_keys:        dict_of_keys[i] = []    dict_of_keys[i].append(i)print(dict_of_keys){1: [1, 1, 1, 1, 1, 1], 2: [2, 2, 2, 2], 3: [3, 3], 4: [4, 4], 5: [5], 6: [6], 7: [7], 8: [8]}
随时随地看视频慕课网APP

相关分类

Python
我要回答