python 判断某个列表中的所有元素在另一个列表中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 判断某个列表中的所有元素在另一个列表中相关的知识,希望对你有一定的参考价值。

RT。如何判断?
如:list1= ['a','b','c']
list2=['b','c','a'],那么这两个list相等
不要sort()之后判断相等。

你这个标题怎么跟内容不一致。

判断一个列表中的元素是否都在另一个列表中,用集合就可以了。

>>> l1 = ['a','b','c']
>>> l2 = ['d', 'b','c','a']
>>> set(l1).issubset(set(l2))
True
>>>

参考技术A 给个思路吧,其实其他人都已经给出了,首先判断两个list是否元素相同,然后取出一个list的每一个值与另一个list进行判断是否in,另外我认为set方式不好,不能用去除重复方式来看list 参考技术B def equal(list1, list2):
    if len(list1) != len(list2):
        return False
    for each in list2:
        if each in list1:
            continue
        else:
            return False
    return True

徒手写的,有问题请提出

参考技术C test = [a for a in list1 if a not in list2]
if not test:
    print("list1 is list2")

test2 = filter(lambda x: (x not in list2), list1)
if not test2:
    print("list1 is list2")

参考技术D a=['a','b','b']
b=['a','b','c','d']
if len(a)>len(b):
print 'false'
else:
for i in range(len(a)):
if a[i] in b:
b.remove(a[i])
if i==len(a)-1:
print 'a in b'
else:
print 'a not in b'
break

Python3 - 列表

序列,一种包含多项数据的数据结构,按照顺序排列,通过索引访问其中的数据。Python 常见的序列类型有字符串、列表和元组。

列表,保存对象的容器,可以存储任意数据类型的数据。所有元素都放在 [ ] 中,用逗号分割每个元素。

列表是可变的。如果一个容器是可变的,则可以修改容器中的对象。将列表中某个元素的索引赋给一个新的对象,即可改变该元素。

如果可以使用循环访问对象中的每一个元素,那么该对象是可迭代的,被称为可迭代对象,因此字符串、列表和元组都是可迭代的。可迭代对象中的每一个元素都有一个索引,即表示元素在可迭代对象中位置的数字。列表的正序索引从 0 开始,倒序索引从 -1 开始。

技术图片

创建空列表

>>> list0 = []
>>> list0, type(list0)
([], <class 'list'>)

元素的查询
1.通过元素的索引来进行列表查询,切片([开始索引:结束索引:步长])列表时遵循顾首不顾尾的原则。

>>> list0 = ['A', 'B', 'C', 'D', 1, 2, 3, 4]
>>> list0[0]  # 查单个元素 
'A'
>>> list0[1], list0[2]  # 查多个元素
('B', 'C')
>>> list0[0:4]  # 切片
['A', 'B', 'C', 'D']
>>> list0[::2]  # 步长
['A', 'C', 1, 3]
>>> list0[:]  # 开始索引和结束索引不写则查询全部元素
['A', 'B', 'C', 'D', 1, 2, 3, 4]
>>> list0[0:0]  # 开始索引和结束索引为 0 ,返回空列表。
[]

2.index() 方法
通过元素查索引,有被查询元素则返回元素的索引值,没有则报错:ValueError。

>>> list0 = ['A', 'B', 'C', 'D', 1, 2, 3, 4]
>>> list0.index('A')
0
>>> list0[list0.index('D')]  # 查找结果返回元素的值:先找索引,在通过索引找元素的值。
'D'
>>> list0.index('E')
Traceback (most recent call last):
  File "<pyshell#16>", line 1, in <module>
    list0.index('E')
ValueError: 'E' is not in list

元素的修改
通过索引来修改元素的值。
注意:索引切片修改时是先把切片匹配到的元素给删除,在插入新的元素,新的元素不限制个数但必须是可迭代的。

>>> list0 = ['A', 'B', 'C', 'D', 1, 2, 3, 4]
>>> list0[0] = 'a'
>>> list0
['a', 'B', 'C', 'D', 1, 2, 3, 4]
>>> list0[1:4] = 'bcef'  # 新元素不限制个数
>>> list0
['a', 'b', 'c', 'e', 'f', 1, 2, 3, 4]

更新时间:2019-08-18

以上是关于python 判断某个列表中的所有元素在另一个列表中的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何判断列表中的元素是否包含某个数字?

python如何删除列表中的元素

python 中如何计算列表中元素的个数

Java:如何判断一个Map中的某个key是不是在另一个Map的key列表中

Python 统计列表里面有多少个元素

python怎么删除列表中的某个元素