Պատկերացրեք, որ շատ հաճախորդներ ունեք աշխարհի տարբեր քաղաքներից: Դուք հետևում եք նրանց քաղաքներին և ունեք քաղաքների ցուցակ, որտեղից գալիս են ձեր հաճախորդները: Այդ ցանկը կարող է լինել այսպիսին՝ ['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 տողերը պարունակում են յուրաքանչյուր ապրանքի համար ընկերության անվանումը:
Ծրագիրը պետք է տպի ընկերությունների չկրկնվող անունները, որոնց հետ համագործակցում է խանութը, յուրաքանչյուրը առանձին տողում: