To’plamlar haqida ma’lumot. II. Asosiy qism


ChainMap-da lug'atlar tartibini qanday o'zgartirish mumkin


Download 136.13 Kb.
bet10/12
Sana04.02.2023
Hajmi136.13 Kb.
#1157765
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
d.dasturlash

ChainMap-da lug'atlar tartibini qanday o'zgartirish mumkin


ChainMap-da lug'atlarni saqlash tartibi funktsiya yordamida o'zgartirilishi mumkin
.reversed()
# We are reversing the order of dictionaries using reversed() function
print('orginal chainmap', chain)
chain.maps = reversed(chain.maps)
print('reversed Chainmap', str(chain))

#> orginal chainmap ChainMap({'blue': 10, 'yellow': 12}, {'red': 1, 'white': 4}, {'red': 9, 'black': 8})


#> reversed Chainmap ChainMap({'red': 9, 'black': 8}, {'red': 1, 'white': 4}, {'blue': 10, 'yellow': 12})

Foydalanuvchilar roʻyxati


A UserListroʻyxatga oʻxshash konteyner maʼlumotlar turi boʻlib, s uchun oʻrash sinfidir list.
Sintaksis:collections.UserList([list])
Oddiy roʻyxatni foydalanuvchi roʻyxatiga argument sifatida oʻtkazasiz. Ushbu ro'yxat ma'lumotlar atributida saqlanadi va unga usul orqali kirish mumkin.
UserList.data
# Creating a user list with argument my_list
from collections import UserList
my_list=[11,22,33,44]

# Accessing it through `data` attribute
user_list=UserList(my_list)
print(user_list.data)

#> [11, 22, 33, 44]


UserLists dan qanday foydalanish kerak


Aytaylik, siz ba'zi bir ro'yxatlardagi barcha elementlarni mukofot sifatida ikki barobarga oshirmoqchisiz. Yoki hech qanday elementni berilgan roʻyxatdan oʻchirib boʻlmasligiga ishonch hosil qilishni xohlaysiz.
Bunday hollarda biz ro'yxatlarimizga ma'lum "xulq-atvor"ni qo'shishimiz kerak, buni UserLists yordamida amalga oshirish mumkin.
Misol uchun, sizga UserListo'rnatilgan usulning funksionalligini bekor qilish uchun qanday foydalanish mumkinligini ko'rsataman. Quyidagi kod ro'yxatga yangi qiymat qo'shishni (yoki qo'shishni) oldini oladi.
# Creating a userlist where adding new elements is not allowed.

class user_list(UserList):


# function to raise error while insertion
def append(self,s=None):
raise RuntimeError("Authority denied for new insertion")

my_list=user_list([11,22,33,44])


# trying to insert new element
my_list.append(55)
#> ---------------------------------------------------------------------------

RuntimeError Traceback (most recent call last)

<ipython-input-2-e8f22159f6e0> in <module>


4
5 my_list=user_list([11,22,33,44])
----> 6 my_list.append(55)
7 print(my_list)

<ipython-input-2-e8f22159f6e0> in append(self, s)


1 class user_list(UserList):
2 def append(self,s=None):
----> 3 raise RuntimeError("Authority denied for new insertion")
4
5 my_list=user_list([11,22,33,44])

RuntimeError: Authority denied for new insertion


Yuqoridagi kod RunTimeErrorxabarni chop etadi va qo'shishga ruxsat bermaydi. Muayyan muddatdan keyin hech kim o'z ismini kirita olmasligiga ishonch hosil qilishni istasangiz, bu foydali bo'lishi mumkin. Shunday qilib, UserListreal vaqtni juda samarali o'tkazing.

Download 136.13 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling