Ենթադրենք՝ շատ հաճախորդներ ունեք՝ աշխարհի տարբեր քաղաքներից: Դուք ձեզ մոտ նշում եք, թե որ քաղաքից են նրանք։ Քաղաքների այդ ցանկը կարող է լինել այսպիսին՝ ['San Francisco', 'New York', 'Yerevan', 'New York', 'Tel Aviv', ...].
Պատահում է, որ որոշ հաճախորդներ նույն քաղաքից են, օրինակ՝ New York-ից: Սակայն դուք ցանկանում եք պարզել, թե որ քաղաքներն են, որոնք չեն կրկնվում ցանկում:
set-ը չկարգավորված տարրերի հավաքածու է, որտեղ կրկնվող տարրեր չկան: Այն ցույց է տալիս տարրերի առկայությունը և չունի հատուկ կարգ կամ հերթականություն: set-ը՝ որպես տարրերի հավաքածու, նման է զանգվածին կամ tuple-ին, սակայն այստեղ չկա որոշակի կարգ, և տարրերը չեն կրկնվում։
Մենք կարող ենք ստուգել՝ արդյոք տարրը set-ի մեջ առկա է, թե ոչ՝ կիրառելով in օպերատորը.
print('San Francisco' in uniques) # True
print('Tel Aviv' in uniques) # True
print('London' in uniques) # False
print('Amsterdam' in uniques) # False
print(3 in uniques) # False
Շատ ավելի արագ է ստուգել, թե արդյոք որոշակի տարր առկա է set-ում, քան նույնը ստուգել զանգվածի դեպքում: Սա պայմանավորված է set-ի տվյալների կառուցվածքով: Զանգվածների դեպքում Python-ը պետք է մեկ առ մեկ համեմատի տարրերը՝ ցուցակի առաջին տարրից մինչև վերջինը, և վերադարձնի True, եթե փնտրվող տարրն առկա է, իսկ հակառակ դեպքում՝ False: Այսպիսով, ստուգումը կատարելու համար այն անցնում է ամբողջ ցանկի վրայով՝ մեկ առ մեկ: set-ի կառուցվածքը թույլ է տալիս այս ստուգումը կատարել՝ կիրառելով ավելի պակաս թվով գործողություններ:
Առաջադրանք
Դուք օգնում եք մթերային խանութին գույքագրում կատարել: Յուրաքանչյուր ապրանքի համար նրանք նշել են այդ ապրանքը մատակարարող ընկերության անվանումը։ Նրանք ցանկանում են հաղորդագրություն ուղարկել այդ ընկերություններին` ասելով, թե որ ապրանքից որքան անհրաժեշտ կլինի առաջիկա մեկ ամսվա ընթացքում: Որոշ ընկերություններ մատակարարում են մի քանի ապրանք, ուստի խանութը չի ցանկանում նույն ընկերությանը տարբեր հաղորդագրություններ ուղարկել՝ ամեն ապրանքի համար առանձին-առանձին: Փոխարենը, նրանք ցանկանում են ունենալ այն ընկերությունների ցանկը, որոնց հետ աշխատում են, որպեսզի կարողանան նրանց հաղորդագրություն ուղարկել: Նրանք ձեզ խնդրում են գրել ծրագիր, որը կտպի բոլոր այն ընկերությունների անվանումները, որոնց հետ համագործակցում է մթերային խանութը:
Մուտքի առաջին տողը պարունակում է մեկ ամբողջ թիվ՝ n (ապրանքների քանակը): Հաջորդ n տողերում նշված է, թե որ ընկերությունն է մատակարարում տվյալ ապրանքը։
Ծրագիրը պետք է տպի ընկերությունների ցանկը՝ առանց կրկնվող անունների։ Յուրաքանչյուր անունը պետք է լինի առանձին տողում: