相关疑难解决方法(0)

如何在列表中找到重复项并使用它们创建另一个列表?

如何在Python列表中找到重复项并创建另一个重复项列表?该列表仅包含整数.

python list duplicates

397
推荐指数
17
解决办法
59万
查看次数

是否有一种简短的方法可以在不使用'if'和多个'and'的情况下检查值的唯一性?

我正在编写一些代码,我需要比较一些值。关键是所有变量都不应该具有相同的值。例如:

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个变量值应该相同。

python duplicates

27
推荐指数
3
解决办法
3325
查看次数

在python中查找(并保留)子列表的副本

我有一个包含数字的列表(子列表)列表,我只想保留所有(子)列表中存在的列表.

例:

x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]

output => [3, 4]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python list duplicates sublist

5
推荐指数
2
解决办法
2285
查看次数

位向量与布尔值性能列表

我试图在Python中重现我在一本书中找到的两个例子(最初是用Java编写的).

这两个函数检查字符串是否包含重复的字符.第一个函数使用integer(checker)作为位向量,而第二个函数只使用一个布尔列表.我期望使用带有位的功能有更好的性能,但实际上它表现更差.

这是为什么?从Java翻译到Python时,我写错了吗?

注意:为简单起见,我们只使用小写字母(az),尤其是位向量函数.

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)

python performance bit-manipulation arraylist

5
推荐指数
1
解决办法
878
查看次数

查找列表中是否重复某些内容的最有效方法是什么?

假设我有一个清单:

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,则其中有一个值不止一次.

问题:

  1. 什么是这样做的有效途径?

  2. 如何计算这两个(或更多?)选项的O表示法?

谢谢!

python list python-2.7

2
推荐指数
1
解决办法
599
查看次数

如何检查列表是否包含重复项?

我想验证列表以确保没有重复的项目.我的问题是我不知道如何在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 validation

2
推荐指数
2
解决办法
8378
查看次数