我想删除两个列表中的非共有项

2024-10-03 02:37:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个可以用来删除非comon元素的函数(我应该删除两个列表):

marcas = [
(1, 'Audi'),
(2, 'Nissan'),
(3, 'Mercedes'),]
marcas2 = [] 

coches = [
{
    'modelo': 'Audi C3',
    'marca': 1,
    'precio': 25000,
    'ano': 2017,
}]


def delbrand(marcas):

for y in coches:
    for x in marcas:
        if y['marca'] == x[0]:
            if x not in marcas2:
                marcas2.append(x)
m = 0

for i in marcas:
    if i not in marcas2:
        del marcaslist[m]
    m = m+1

你能帮我解决这个问题吗?你知道吗


Tags: 函数in元素列表forifnotmercedes
1条回答
网友
1楼 · 发布于 2024-10-03 02:37:24

不太清楚你要什么。我修改了你的代码:

brands = ['Audi', 'Nissan', 'Mercedes']

cars = [
{
    'modelo': 'Audi C3',
    'marca': 1,
    'precio': 25000,
    'ano': 2017,
}]

not_existing_brands = set()

def find_not_common(brands, cars):

    for brand in brands:
        for car in cars:
            if brand not in car['modelo']:
                not_existing_brands.add(brand)

find_not_common(brands, cars)

print brands
print list(not_existing_brands)

for item in list(not_existing_brands):
    brands.remove(item)

# final brands list
print brands

输出:

['Audi', 'Nissan', 'Mercedes']
['Mercedes', 'Nissan']
['Audi']

相关问题 更多 >