Loading...
Python

Կարող եք ձեր կոդը փորձարկել այստեղ

Python

Գլուխ 5. Ցուցակներ, կրկնօրինակներ և բառարաններ

Կոմպլեկտներ

Հավաքածուն հավաքածուի մեկ այլ տեսակ է, որը պահպանում է միայն եզակի տարրեր: Կոմպլեկտ սահմանելու համար օգտագործվում են գանգուր փակագծեր՝ տարրերը թվարկելու համար.
users = {"Tom", "Bob", "Alice", "Tom"} print(users) # {"Alice", "Bob", "Tom"}
Խնդրում ենք նկատի ունենալ, որ թեև տպման գործառույթը մեկ անգամ տպել է «Tom» տարրը, հավաքածուի սահմանումը պարունակում է այս տարրը երկու անգամ: Դա պայմանավորված է նրանով, որ հավաքածուն պարունակում է միայն եզակի արժեքներ:
Նաև բազմություն սահմանելու համար կարող է օգտագործվել set() ֆունկցիան , որին փոխանցվում է տարրերի ցանկ կամ բազմապատիկ.
people = ["Mike", "Bill", "Ted"] users = set(people) print(users) # {"Mike", "Bill", "Ted"}
Set ֆունկցիան հարմար է օգտագործել դատարկ հավաքածու ստեղծելու համար.
users = set()
Կոմպլեկտի երկարությունը ստանալու համար օգտագործեք ներկառուցված len() ֆունկցիան.
users = {"Tom", "Bob", "Alice"} print(len(users)) # 3
Էլեմենտների ավելացում
Մեկ տարր ավելացնելու համար add() մեթոդը կոչվում է.
users = set() users.add("Sam") print(users)
Նյութերի հեռացում
Մեկ տարր հեռացնելու համար remove() մեթոդը կոչվում է , որին փոխանցվում է հեռացվող տարրը։ Բայց պետք է հաշվի առնել, որ եթե այդպիսի տարր չկա հավաքածուում, ապա կառաջանա սխալ։ Հետևաբար, նախքան ջնջելը, դուք պետք է ստուգեք տարրի առկայությունը՝ օգտագործելով in օպերատորը.
users = {"Tom", "Bob", "Alice"} user = "Tom" if user in users: users.remove(user) print(users) # {"Bob", "Alice"}
Դուք կարող եք նաև օգտագործել discard() մեթոդը հեռացնելու համար , որը բացառություններ չի անի, եթե տարրը բացակայում է.
users = {"Tom", "Bob", "Alice"} users.discard("Tim") # элемент "Tim" отсутствует, и метод ничего не делает print(users) # {"Tom", "Bob", "Alice"} users.discard("Tom") # элемент "Tom" есть, и метод удаляет элемент print(users) # {"Bob", "Alice"}
Բոլոր տարրերը հեռացնելու համար clear() մեթոդը կոչվում է.
users.clear()
Կրկնվող հավաքածուի միջով
Դուք կարող եք օգտագործել for loop՝ տարրերի միջով կրկնելու համար.
users = {"Tom", "Bob", "Alice"} for user in users: print(user)
Կրկնելիս յուրաքանչյուր տարր տեղադրվում է օգտագործողի փոփոխականում։
Սահմանել գործողությունները
Օգտագործելով copy() մեթոդը , դուք կարող եք պատճենել մի հավաքածուի բովանդակությունը մեկ այլ փոփոխականում՝
users = {"Tom", "Bob", "Alice"} students = users.copy() print(students) # {"Tom", "Bob", "Alice"}
Կոմպլեկտների միություն
Union() մեթոդը միավորում է երկու բազմություն և վերադարձնում նոր բազմություն.
users = {"Tom", "Bob", "Alice"} users2 = {"Sam", "Kate", "Bob"} users3 = users.union(users2) print(users3) # {"Bob", "Alice", "Sam", "Kate", "Tom"}
Մեթոդի փոխարեն union()մենք կարող ենք օգտագործել տրամաբանական գումարման գործողությունը - | :
users = {"Tom", "Bob", "Alice"} users2 = {"Sam", "Kate", "Bob"} print(users | users2) # {"Bob", "Alice", "Sam", "Kate", "Tom"}
Շատերի խաչմերուկ
Բազմությունների խաչմերուկը մեզ թույլ է տալիս ստանալ միայն այն տարրերը, որոնք միաժամանակ երկու հավաքածուներում են: Intersection() մեթոդը կատարում է բազմությունների հատման գործողությունը և վերադարձնում նոր բազմություն.
users = {"Tom", "Bob", "Alice"} users2 = {"Sam", "Kate", "Bob"} users3 = users.intersection(users2) print(users3) # {"Bob"}
Խաչմերուկի մեթոդի փոխարեն մենք կարող ենք օգտագործել տրամաբանական բազմապատկման գործողությունը.
users = {"Tom", "Bob", "Alice"} users2 = {"Sam", "Kate", "Bob"} print(users & users2) # {"Bob"}
Այս դեպքում մենք կստանայինք նույն արդյունքը։
Մեթոդի փոփոխությունը՝ intersection_update()- ը փոխարինում է առաջին հավաքածուն հատվող տարրերով.
users = {"Tom", "Bob", "Alice"} users2 = {"Sam", "Kate", "Bob"} users.intersection_update(users2) print(users) # {"Bob"}
Սահմանել տարբերությունը
Մեկ այլ գործողություն՝ սահմանված տարբերությունը, վերադարձնում է այն տարրերը, որոնք գտնվում են առաջին հավաքածուում, բայց ոչ երկրորդում: Կոմպլեկտների տարբերությունը ստանալու համար կարող եք օգտագործել տարբերության մեթոդը կամ հանման գործողությունը.
users = {"Tom", "Bob", "Alice"} users2 = {"Sam", "Kate", "Bob"} users3 = users.difference(users2) print(users3) # {"Tom", "Alice"} print(users - users2) # {"Tom", "Alice"}
Բազմության տարբերության առանձին տեսակ՝ սիմետրիկ տարբերություն արտադրվում է symmetric_difference() մեթոդի միջոցով կամ օգտագործելով գործողությունը ^: Այն վերադարձնում է երկու հավաքածուների բոլոր տարրերը, բացառությամբ ընդհանուրների.
users = {"Tom", "Bob", "Alice"} users2 = {"Sam", "Kate", "Bob"} users3 = users.symmetric_difference(users2) print(users3) # {"Tom", "Alice", "Sam", "Kate"} users4 = users ^ users2 print(users4) # {"Tom", "Alice", "Sam", "Kate"}
Կոմպլեկտների միջև հարաբերությունները
Issubset մեթոդը թույլ է տալիս պարզել, թե արդյոք ընթացիկ բազմությունը ենթաբազմություն է (այսինքն, մաս) մեկ այլ բազմության.
users = {"Tom", "Bob", "Alice"} superusers = {"Sam", "Tom", "Bob", "Alice", "Greg"} print(users.issubset(superusers)) # True print(superusers.issubset(users)) # False
Մյուս կողմից, issuperset մեթոդը վերադարձնում է True, եթե ընթացիկ բազմությունը գերբազմություն է (այսինքն, պարունակում է) մեկ այլ բազմություն.
users = {"Tom", "Bob", "Alice"} superusers = {"Sam", "Tom", "Bob", "Alice", "Greg"} print(users.issuperset(superusers)) # False print(superusers.issuperset(users)) # True
սառեցված հավաքածու
Սառեցված հավաքածուի տեսակը հավաքածուի տեսակ է, որը հնարավոր չէ փոխել: Այն ստեղծելու համար օգտագործեք «Frozenset» ֆունկցիան.
users = frozenset({"Tom", "Bob", "Alice"})
Սառեցված ֆունկցիային փոխանցվում է տարրերի մի շարք՝ ցուցակ, բազմակի կամ մեկ այլ հավաքածու:
Մենք չենք կարող նոր տարրեր ավելացնել նման հավաքածուի մեջ, ոչ էլ կարող ենք հեռացնել գոյություն ունեցողները: Սա է իրականում պատճառը, որ սառեցված հավաքածուն աջակցում է սահմանափակ գործողությունների շարք.
len(s): վերադարձնում է հավաքածուի երկարությունը

x in s: վերադարձնում է True, եթե x տարրը առկա է s բազմությունում

x not in s: վերադարձնում է True, եթե x տարրը s բազմությունում չէ

s.issubset(t): վերադարձնում է True, եթե t-ը պարունակում է s բազմություն

s.issuperset(t): վերադարձնում է True, եթե t-ը s բազմության մեջ է

s.union(t)

- վերադարձնում է s և t բազմությունների միությունը
s.intersection(t): վերադարձնում է s և t բազմությունների հատումը

s.difference(t): վերադարձնում է s և t բազմությունների տարբերությունը

s.copy(): վերադարձնում է հավաքածուի պատճենը s

Մեկնաբանություն գրելու համար խնդրում ենք մուտք լինել