Collections

Π’ Python Π΅ΡΡ‚ΡŒ 4 встроСнныС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ β€” list, dict, set ΠΈ tuple.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Над Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ коллСкциями ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΡƒΡ‡Π° интСрСсных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Π΄ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

set ΠΈ frozenset

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ мноТСства Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ hashable.

set1 = set(iterable)
frozenset1 = frozenset(iterable)

# Π•Ρ‰Π΅ Set ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
set2 = {1, 2}
set3 = {c for c in 'abracadabra' if c not in 'abc'}

Create Object for Set

__eq__ β€” Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ для сравнСния (это происходит ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² мноТСство)

__str__ β€” Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ выглядСли ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ

__hash__ β€” для добавлСния Π² мноТСство

class Record(BaseModel):
    address: Address
    length: str
    record_type: str
    string: str

    def __eq__(self, other):
        if self.string == other.string:
            return True
        else:
            return False

    def __str__(self):
        return self.string

    def __hash__(self):
        return hash(str(self))

Tuple

Π­Ρ‚ΠΎ нСизмСняСмый ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов

tuple1 = ()
tuple2 = a,
tuple3 = (a,)
tuple4 = a, b, c
tuple5 = (a, b, c)
tuple6 = tuple()
tuple7 = tuple(iterable)

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ. ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΏΠΎ индСксу. Π§Π΅Ρ€Π΅Π· collections.namedtuple() (см Π½ΠΈΠΆΠ΅) ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ; Π² этом случаС ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ collections Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

Last updated