所以我有两个清单:
num = [
3, 22, 23, 25, 28, 29, 56, 57, 67, 68, 73, 78, 79, 82, 83, 89, 90, 91,
92, 98, 99, 108, 126, 127, 128, 131, 132, 133
]
details = [
'num=10,time=088', 'num=10,time=084', 'num=10,time=080', 'num=10,time=076',
'num=10,time=072', 'num=10,time=068', 'num=10,time=064', 'num=10,time=060',
'num=10,time=056', 'num=10,time=052', 'num=10,time=048', 'num=10,time=044',
.
.
.
.
'num=07,time=280', 'num=07,time=276', 'num=05,time=508', 'num=05,time=504',
'num=05,time=500', 'num=05,time=496'
]
Run Code Online (Sandbox Code Playgroud)
num有 28 个元素,details有 134 个元素。我想details根据 中的值按索引删除元素num。例如,索引为 3、22、23、25、28...(这些是num列表中的数字)的元素应从 中删除details。
当我按照此处.pop()所述使用时,它给我一个错误:
num = [
3, 22, 23, 25, 28, 29, 56, 57, 67, 68, 73, 78, 79, 82, 83, 89, 90, 91,
92, 98, 99, 108, 126, 127, 128, 131, 132, 133
]
details = [
'num=10,time=088', 'num=10,time=084', 'num=10,time=080', 'num=10,time=076',
'num=10,time=072', 'num=10,time=068', 'num=10,time=064', 'num=10,time=060',
'num=10,time=056', 'num=10,time=052', 'num=10,time=048', 'num=10,time=044',
.
.
.
.
'num=07,time=280', 'num=07,time=276', 'num=05,time=508', 'num=05,time=504',
'num=05,time=500', 'num=05,time=496'
]
Run Code Online (Sandbox Code Playgroud)
同样,当我使用del details[]它时,会出现错误:
AttributeError: 'str' object has no attribute 'pop'
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
for an in details:
an.pop(num)
Run Code Online (Sandbox Code Playgroud)
这应该执行您想要的操作(从详细信息中删除由 num 中的值索引的每个元素):
for i in reversed(num):
del details[i]
Run Code Online (Sandbox Code Playgroud)
它向后迭代列表,以便将来要删除的内容的索引不会改变(否则您将删除 3,然后以前索引为 22 的元素将是 21)——这可能是 IndexError 的来源。
| 归档时间: |
|
| 查看次数: |
11843 次 |
| 最近记录: |