繁体   English   中英

删除列表 python 中的第一个/最后一个匹配项

[英]delete first/last occurrence in list python

我需要删除列表中的所有第一次出现。

时间限制 = 2 秒。

memory 限制 = 256 mb。

给定列表a。 重复中的一些元素。 如果 len(a) = 1 打印 0。

输入:1 1 5 2 4 3 3 4 2 5。

Output:1 3 4 2 5

我的解决方案:对于 48 测试 22 - 好。 否则 - 时间有限。 没有.count如何解决

n = int(input())
A = list(map(int, input().split()))
C = []

if len(A) == 1:
    print(0)
else:
    for j in range(n):
        if A[:j].count(A[j]):
            C.append(A[j])
    print(len(C))
    print(*C)

请帮忙

使用集合的另一种方法

第一的

n = input().split(" ")
u = []
if(len(n) == 1): print(0, end="")
else: 
  d = {}
  for a in n: 
    if a in d: u.append(int(a))
    else: d[a] = 1 
print(*u, end="")

# input: 1 1 5 2 4 3 3 4 2 5
# output: 1 3 4 2 5
# input: 5
# output: 0
# input: 1 1 1 1
# output: 1 1 1

最后的

n = input().split(" ")
u = []
if(len(n) == 1): print(0, end="")
else:
  n.reverse()
  d = {}
  for a in n: 
    if a in d: u.append(int(a))
    else: d[a] = 1 
  u.reverse()
print(*u, end="")
# # input: 1 1 5 2 4 3 3 4 2 5
# # output: 1 5 2 4 3
# # input: 5
# # output: 0
# # input: 1 1 1 1
# # output: 1 1 1

要删除重复项,请使用 set()

_ = input()
A = set(map(int, input().split()))
print(*list(A))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM