如何解决如何删除列表中另一个值之前的元组
在下面的代码中,我想删除值2
之前的对,并打印值3
之前的最后一对的第二个元素。输入为list=[(1,97),(2),(1,20),26),(3),91),(3)]
。通过显示第一个2
,两个本身和(1,97)
将被删除,第二个2
和(1,20)
再次删除,第三个第二个值2
和({ {1}}应该被删除,现在列表是1,20)
,并且应该打印值[(1,(3)]
之前的对的第二个值,所以最终输出应该是:3
。我不确定删除[26,91]
前的配对。
2
解决方法
您可以尝试以下代码:
lis = [(1,97),(2),(1,20),26),(3),91),(3)]
out = [lis[i] for i in range(len(lis) - 1) if lis[i] not in [(2)] and lis[i + 1] not in [(2)]]
out = [i[1] for i in out if i != 3]
print(out)
输出:
[26,91]
,
第一个循环:如果元素不等于2,则添加元素;如果元素为2,则删除最近添加的元素。
第二个循环:如果不是3,则添加所有元素的第二个位置
N = 10
arr=[(1,(3)]
temp = []
for i in range(0,len(arr)):
if arr[i] != 2:
temp.append(arr[i])
else:
temp.pop()
ans = []
for ele in temp:
if ele != 3:
ans.append(ele[1])
输出:
[26,91]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。