检查Python数组中是否有两个相同的字符串元素
我有一个字符串数组,如下所示: [a1、a2、a1、a3、a2] 我想找到类似的字符串并将它们放入一个新数组中,如下所示: [a1,a2] 我是Python新手。请告诉我怎么做检查Python数组中是否有两个相同的字符串元素,python,arrays,Python,Arrays,我有一个字符串数组,如下所示: [a1、a2、a1、a3、a2] 我想找到类似的字符串并将它们放入一个新数组中,如下所示: [a1,a2] 我是Python新手。请告诉我怎么做 谢谢。如果您所说的数组是指python中的列表-: s = ["a1","a2","a1","a3","a2"] duplicates = [x for x in s if s.count(x) > 1] myl = list(set(duplicates)) print myl 输出['a1',a2']如果按数
谢谢。如果您所说的数组是指python中的列表-:
s = ["a1","a2","a1","a3","a2"]
duplicates = [x for x in s if s.count(x) > 1]
myl = list(set(duplicates))
print myl
输出
['a1',a2']
如果按数组表示python中的列表-:
s = ["a1","a2","a1","a3","a2"]
duplicates = [x for x in s if s.count(x) > 1]
myl = list(set(duplicates))
print myl
输出
['a1',a2']
使用
使用 这里是O(nlog(n))方法来查找重复项。初始列表被排序(O(nlog(n)),以便在相邻位置重复元素。然后简单的O(n)迭代就可以找到重复项
s = ["a1","a2","a1","a3","a2"]
s.sort() # sort changes initial list
new_list = []
prev = (None, False)
for x in s:
if prev == (x, False):
new_list.append(x)
prev = (x, True)
else:
prev = (x, False)
print new_list
这里是O(nlog(n))方法来查找重复项。初始列表被排序(O(nlog(n)),以便在相邻位置重复元素。然后简单的O(n)迭代就可以找到重复项
s = ["a1","a2","a1","a3","a2"]
s.sort() # sort changes initial list
new_list = []
prev = (None, False)
for x in s:
if prev == (x, False):
new_list.append(x)
prev = (x, True)
else:
prev = (x, False)
print new_list
虽然我不知道它的性能,但它确实有效
s = ["a1","a2","a1","a3","a2"]
i=0
common=[]
for i in range(0,len(s)):
if s[i] not in common and s[i] in s[i+1:]:
common.append(s[i])
虽然我不知道它的性能,但它确实有效
s = ["a1","a2","a1","a3","a2"]
i=0
common=[]
for i in range(0,len(s)):
if s[i] not in common and s[i] in s[i+1:]:
common.append(s[i])
非常感谢RanRag。你救了我一天。:)非常感谢RanRag。你救了我一天。:)