如何在Python列表中找到重复项并创建另一个重复项列表?该列表仅包含整数.
我正在编写一些代码,我需要比较一些值。关键是所有变量都不应该具有相同的值。例如:
a=1
b=2
c=3
if a != b and b != c and a != c:
#do something
Run Code Online (Sandbox Code Playgroud)
现在,很容易看到在具有更多变量的代码的情况下,该if语句变得很长且充满ands。有没有一种简短的方法来告诉Python,没有2个变量值应该相同。
我有一个包含数字的列表(子列表)列表,我只想保留所有(子)列表中存在的列表.
例:
x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]
output => [3, 4]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我试图在Python中重现我在一本书中找到的两个例子(最初是用Java编写的).
这两个函数检查字符串是否包含重复的字符.第一个函数使用integer(checker)作为位向量,而第二个函数只使用一个布尔列表.我期望使用带有位的功能有更好的性能,但实际上它表现更差.
这是为什么?从Java翻译到Python时,我写错了吗?
注意:为简单起见,我们只使用小写字母(a到z),尤其是位向量函数.
import sys
import timeit
def is_unique_chars_bit(my_str):
checker = 0
for char in my_str:
val = ord(char) - ord('a')
if ((checker & (1 << val)) > 0):
return False
checker |= (1 << val)
return True
def is_unique_chars_list(my_str):
if len(my_str) > 128:
# Supposing we use ASCII, which only has 128 chars
return False
char_list = [False] * 128
for char in my_str:
val = ord(char)
if char_list[val]:
return False …Run Code Online (Sandbox Code Playgroud) 假设我有一个清单:
l = ['a', 'b', 'c', 'd', 'e', 'f', 'e']
Run Code Online (Sandbox Code Playgroud)
如您所见,重复索引4和6.我的问题是:查看列表中是否有重复内容的最有效方法是什么?
选项1:
output = len(set(l)) != len(l):
Run Code Online (Sandbox Code Playgroud)
如果输出为false,则其中有一个值不止一次.
选项2:
output = True
for i in l:
if l.count(i) > 1:
output = False
Run Code Online (Sandbox Code Playgroud)
如果输出为false,则其中有一个值不止一次.
问题:
什么是最这样做的有效途径?
如何计算这两个(或更多?)选项的O表示法?
谢谢!
我想验证列表以确保没有重复的项目.我的问题是我不知道如何在if语句中执行此操作.如果列表中有重复项,python中是否存在返回False的方法或内容?
这就是我的想法:
lst = ["1","2","3","3","4"]
if #lst contains no duplicates :
print("success")
else:
print("duplicate found")
Run Code Online (Sandbox Code Playgroud)
提前致谢.
python ×6
duplicates ×3
list ×3
arraylist ×1
performance ×1
python-2.7 ×1
sublist ×1
validation ×1