# -*- coding: utf-8 -*-
class
SuperTupl
(
tuple
)
:
def
to_lis
(
self
)
:
return
list
(
self
)
def
to_dic
(
self
,
set_key
=
0
)
:
a
=
{
str
(
val
[
set_key
]
)
:
val
for
val
in
self
}
return
SuperDic
(
**
a
)
class
SuperDic
(
dict
)
:
def
clean
(
self
,
key
)
:
"""
d = SuperDic(a=1,b=2,c=3)
print(d.clean('a').clean('b'))
:param key: the key will be deleted
:return: dict without the key
"""
self
.
pop
(
key
)
return
self
def
remove_item
(
self
,
item
)
:
"""
d = SuperDic(a=1,b=2,c=3)
print(d.remove_item({'a':1,'b':2}))
:param key: the key will be deleted
:return: dict without the key
"""
if
isinstance
(
item
,
dict
)
:
for
k
,
v
in
item
.
items
(
)
:
if
self
[
k
]
==
v
:
self
.
pop
(
k
)
return
self
def
to_tuple
(
self
)
:
return
SuperTupl
(
(
k
,
v
)
for
k
,
v
in
self
.
items
(
)
)
def
__repr__
(
self
)
:
if
isinstance
(
self
,
dict
)
:
_d
=
''
for
k
,
v
in
self
.
items
(
)
:
_d
+=
'\''
+
str
(
k
)
+
'\''
+
':'
+
str
(
v
)
+
', '
return
'{'
+
_d
.
rstrip
(
', '
)
+
'}'
elif
isinstance
(
self
,
tuple
)
:
_t
=
''
for
t
in
self
:
_t
+=
'('
+
str
(
t
)
+
')'
return
'('
+
_t
+
')'