Dies ist eine erweiterte Codesammlung der integrierten Funktion vars
von Python 3.x.
Da der Rückgabewert von "vars" ein Wörterbuch ist, kann er mit "items ()" und der Wörterbucheinschlussnotation kopiert werden. Das Element von "items ()" (hier "item") ist ein Tupel von Schlüsseln und Werten.
import sys
from pprint import pp
dict1 = {item[0]: item[1] for item in vars(sys).items()}
pp(dict1)
Ausgabe
{'__name__': 'sys',
'__doc__': 'This module provides access to some objects ...,
...
Hinweis: Der Rückgabewert der integrierten Funktion "vars" ist vom Wörterbuchtyp ("<class'dict"> "). Um die Elemente (Schlüssel- und Wertetabellen) aufzulisten, müssen Sie vars (sys) .items ()
ausführen. Wenn Sie "für Element in vars (sys)" festlegen, wird es als "vars (sys) .keys ()" behandelt und ein Wörterbuch mit dem ersten Zeichen des Schlüssels als Schlüssel und dem zweiten Zeichen als Wert erstellt.
import sys
from pprint import pp
dict1 = {item[0]: type(item[1]) for item in vars(sys).items()}
pp(dict1)
Ausgabe
{'__name__': <class 'str'>,
'__doc__': <class 'str'>,
'__package__': <class 'str'>,
'__loader__': <class 'type'>,
...
import sys
from pprint import pp
set1 = {type(value).__name__ for value in vars(sys).values()}
pp(set1)
Ausgabe
{'ModuleSpec',
'NoneType',
'SimpleNamespace',
'TextIOWrapper',
'bool',
'builtin_function_or_method',
'dict',
'flags',
'float_info',
'function',
'hash_info',
'int',
'int_info',
'list',
'str',
'thread_info',
'tuple',
'type',
'version_info'}
Typ (...) .__ Name__
erhalten werden.
--{e für e in v}
ist eine festgelegte Einschlussnotation.
import sys
from collections import Counter
from pprint import pp
counter = Counter((type(value).__name__ for value in vars(sys).values()))
pp(counter)
Ausgabe
Counter({'builtin_function_or_method': 42,
'str': 16,
'TextIOWrapper': 6,
'int': 5,
'list': 5,
'dict': 3,
'tuple': 2,
'NoneType': 2,
'type': 1,
'ModuleSpec': 1,
'float_info': 1,
'int_info': 1,
'hash_info': 1,
'version_info': 1,
'SimpleNamespace': 1,
'flags': 1,
'thread_info': 1,
'bool': 1,
'function': 1})
import sys
import types
from pprint import pp
dict1 = {item[0]: item[1] for item in vars(sys).items()
if isinstance(item[1], types.BuiltinFunctionType)}
pp(dict1)
Ausgabe
{'addaudithook': <built-in function addaudithook>,
'audit': <built-in function audit>,
'breakpointhook': <built-in function breakpointhook>,
'callstats': <built-in function callstats>,
'_clear_type_cache': <built-in function _clear_type_cache>,
...
import sys
import types
from pprint import pp
dict1 = {item[0]: item[1] for item in vars(sys).items()
if not isinstance(item[1], types.BuiltinFunctionType)}
pp(dict1)
Ausgabe
{'__name__': 'sys',
'__doc__': 'This module provides ...',
'__package__': '',
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__spec__': ModuleSpec(name='sys', loader=<class '_frozen_importlib.BuiltinImporter'>),
...
import sys
import types
from pprint import pp
from typing import Optional
def str_truncate_singleline(s, width: int, linesep: Optional[str]):
s = str(s)
if not isinstance(width, int):
raise TypeError()
addsEllipsis: bool = False
if linesep is not None:
i: int = s.find(linesep)
if i != -1:
s = s[0:i]
addsEllipsis = True
if len(s) + len("...") > width:
return s[0:width-len("...")] + "..."
return s + "..." if addsEllipsis else s
dict1 = {item[0]: str_truncate_singleline(item[1], 50, "\n")
for item in vars(sys).items()
if not isinstance(item[1], types.BuiltinFunctionType)}
pp(dict1)
Recommended Posts