相关疑难解决方法(0)

检查两个无序列表是否相等

我正在寻找一种简单(快速)的方法来确定两个无序列表是否包含相同的元素:

例如:

['one', 'two', 'three'] == ['one', 'two', 'three'] :  true
['one', 'two', 'three'] == ['one', 'three', 'two'] :  true
['one', 'two', 'three'] == ['one', 'two', 'three', 'three'] :  false
['one', 'two', 'three'] == ['one', 'two', 'three', 'four'] :  false
['one', 'two', 'three'] == ['one', 'two', 'four'] :  false
['one', 'two', 'three'] == ['one'] :  false
Run Code Online (Sandbox Code Playgroud)

我希望不使用地图就能做到这一点.

python comparison list

234
推荐指数
5
解决办法
31万
查看次数

如何断言两个列表在Python中包含相同的元素?

在编写测试用例时,我经常需要声明两个列表包含相同的元素而不考虑它们的顺序.

我一直在将列表转换为集合.

有没有更简单的方法来做到这一点?

编辑:

正如@MarkDickinson指出的那样,我可以使用TestCase.assertItemsEqual.

TestCase.assertItemsEqualPython2.7中的新增注释.如果您使用的是旧版本的Python,则可以使用unittest2 - Python 2.7新功能的后端.

python unit-testing

138
推荐指数
4
解决办法
12万
查看次数

确定2个列表是否具有相同的元素,无论顺序如何?

对不起这个简单的问题,但我很难找到答案.

当我比较2个列表时,我想知道它们是否"相等",因为它们具有相同的内容,但顺序不同.

例如:

x = ['a', 'b']
y = ['b', 'a']
Run Code Online (Sandbox Code Playgroud)

我想x == y评价一下True.

python equality list python-2.x

109
推荐指数
2
解决办法
10万
查看次数

用于整数分区的优雅Python代码

我试图编写代码来解决标准的整数分区问题(维基百科).我写的代码很乱.我需要一个优雅的解决方案来解决问题,因为我想改进我的编码风格.这不是一个家庭作业问题.

python algorithm

32
推荐指数
6
解决办法
3万
查看次数

检查Python中两个集合是否相等的时间复杂度

阅读这个问题,我想知道用Python来评估表达式需要多少时间(渐近地说)

{1,2}=={2,1}
Run Code Online (Sandbox Code Playgroud)

也就是说,检查set类的两个实例是否相等.

python time-complexity

12
推荐指数
1
解决办法
5231
查看次数

在不保留任何订单的情况下从列表列表中删除重复内容

我在python中编写代码来查找整数的因子对.但是制作对也会产生反向对.我想在不导入任何模块的情况下使用简单的方法消除这些反向对.例如.

[[1, 200], [2, 100], [4, 50], [5, 40], [8, 25], [10, 20], [20, 10], [25, 8], [40, 5], [50, 4], [100, 2], [200, 1]]

输出应该是:

[[1, 200], [2, 100], [4, 50], [5, 40], [8, 25], [10, 20]]
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所得到的:

N = []
J = []
F = []
Z = []
S = []
num = input("Enter no. of elements in list")
print ('Enter numbers')
prod = 1
for i in range(int(num)):
    n = input("num :")
    N.append(int(n))
for x in …
Run Code Online (Sandbox Code Playgroud)

python

12
推荐指数
3
解决办法
886
查看次数

如何比较两个不同顺序的列表?

我需要比较两个列表而不考虑它们的顺序:

list_a = ['one', 'two', 'three']
list_b = ['three', 'one', 'two']
Run Code Online (Sandbox Code Playgroud)

当我尝试比较它们时,它返回False:

>>> list_a == list_b
False
Run Code Online (Sandbox Code Playgroud)

两个列表都有很多元素,比较它们的最佳方法是什么?

python

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

两个数字的比较

我正在尝试制作一个程序来检查两个数字是否具有相同的数字但顺序不同。例如,232 和 223 将打印“true”,但 123 和 223 将打印“false”。现在我没有错误,但答案应该是“正确的”,而不是:

我的代码:

a=322 
b=223

list_a = list(str(a))
list_b = list(str(b))
c=len(str(a))
d=len(str(b))

j=0

if c != d:
    print "false"
else:
    for i in range(len(list_a)):
        while j<d:
           if i == list_b[j]:
            list_b.remove(list_b[j])
            break
           j=j+1
        j=0



if list_b==[]:
    print "true"
Run Code Online (Sandbox Code Playgroud)

python string-comparison

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

测试两个列表是否相等,无论其中对象的顺序如何

有没有办法检查两个列表是否相等,具体取决于其中的值,但无论它们的顺序如何

例如:

[3,4,5] == [5,3,4]将:true

您当然可以对两个列表进行排序然后比较它们,问题是是否可以使用它们的值检查列表是否相等,而不对它们进行排序

python list python-3.x

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

检查第一个列表的所有元素在第二个列表中出现的次数是否相同

如何检查第一个列表的元素是否也出现在第二个列表中,但前提是该值在两个列表中出现的次数相同?

我将展示我的代码和输出来演示我想要的结果。

输入:

List_1 = [1, 2, 2]
List_2 = [1, 2, 2, 3, 4]

print("First list is", List_1)
print("Second list is", List_2)

res = all(ele in List_2 for ele in List_1)

print(f"Output: {res}")
Run Code Online (Sandbox Code Playgroud)

输出:

List_1 = [1, 2, 2]
List_2 = [1, 2, 2, 3, 4]

print("First list is", List_1)
print("Second list is", List_2)

res = all(ele in List_2 for ele in List_1)

print(f"Output: {res}")
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,如果第二个列表的某个元素具有另一个相同的值,则第一个列表也需要具有它。

但是,如果两个列表中出现的值出现次数不同,我希望它为 false。

这是一个例子。

输入:

List_1 = [1, 2]
List_2 = [1, 2, 2, …
Run Code Online (Sandbox Code Playgroud)

python

-1
推荐指数
1
解决办法
190
查看次数