【发布时间】:2019-04-09 09:25:06
【问题描述】:
我有一个列表列表,我需要将第二个和第三个元素分别移动到第一个和最后一个位置的第一个元素(这是一个列表)中。然后我需要删除使用过的元素。
我已经有一个 for 循环可以在第一个实例中使用,但我不确定如何安全地删除这些元素并移至下一组并重复操作。我了解 for 循环不适合删除元素。
示例列表
x = ['string 1', 1, 2, 'string 2', 0, 'string 3'], 'new string 1', 'new string 2', ['string 3', 19, 2, 'string 4', 0, 'string 5'], 'new string 3', 'new string 4', ['string 6', 1, 2, 'string 7', 0, 'string 8'], 'new string 5', 'new string 6', ['string 9', 19, 2, 'string 10', 0, 'string 11']
new string 1 应该放在 string 1 前面,new string 2 被附加到列表中,然后所有前 10 个值(技术上前 3 个元素,因为第一个是一个列表)被删除。
下面的 for 循环在一个实例中实现了这一点
def sorting_insert_list(x):
x = list(x)
for i in range(len(x)):
keyword = x[1]
location = x[2]
x[0].append(location)
x[0].insert(0, keyword)
print(x)
并返回以下结果
[['new string 1', 'string 1', 1, 2, 'string 2', 0, 'string 3', 'new string 2'], 'new string 1', 'new string 2', ['string 3', 19, 2, 'string 4', 0, 'string 5'], 'new string 3', 'new string 4', ['string 6', 1, 2, 'string 7', 0, 'string 8'], 'new string 5', 'new string 6']
我需要的最终列表如下所示:
sorted_list = ['new string 1', 'string 1', 1, 2, 'string 2', 0, 'string 3','new string 2',] ['new string 3''string 3', 19, 2, 'string 4', 0, 'string 5', 'new string 4',], ['new string 5','string 6', 1, 2, 'string 7', 0, 'string 8','new string 6']
可能值得注意的是,我会为一个庞大的列表执行此操作,我只是简化了数据以作为示例显示。谢谢。
添加尝试合并日期,然后出现在列表中new string 2 之后的位置 x[3]:
def sorting_insert_list(x):
result = []
for i in range(0, len(3)):
keyword = x[i + 1]
location = x[i + 2]
date = insert_values[i + 3]
result += [[keyword] + x[i] + [location] + date]
x = result
print(x)
【问题讨论】:
-
抱歉,更新列表
x
标签: python python-3.x