This commit is contained in:
2022-11-22 17:27:23 +01:00
parent 8dc4f59ff5
commit aa8cd49cb6
2 changed files with 72 additions and 1 deletions

View File

@@ -1,14 +0,0 @@
Meine Notizen :
lambda
Wir verwenden Lambda-Funktionen, wenn wir für kurze Zeit eine unbenannte Funktion benötigen.
list(map(lambda a:a + 3, myList)
map
Wir können die integrierte Python-Funktion map() verwenden, um für jedes Element in einer Iterablen (wie einer Liste oder einem Wörterbuch) eine Funktion anzuwenden und einen neuen Iterator zum Abrufen der Ergebnisse zurückgeben. map() gibt ein map-Objekt (einen Iterator) zurück, das wir in anderen Teilen unseres Programms nutzen können. Außerdem können wir das map-Objekt an die Funktion list() oder einen anderen Sequenztyp übergeben, um eine Iterable zu erstellen.
numbers = [10, 15, 21, 33, 42, 55]
mapped_numbers = list(map(lambda x: x * 2 + 3, numbers))

63
Dienstag/User_modify.py Normal file
View File

@@ -0,0 +1,63 @@
#! /usr/bin/env python3
def read_file(path: str) -> "List of lines":
#f = open(path, 'r')
with open(path, 'r') as f:
# f.read(buflen) - binary read
# f.readline() - 1 Textzeile lesen -> str
# f.readlines - alle Textzeilen lesen ->str
# f ist gleichzeitig Iterator
# 1 möglichkeit
#lines = list(map(lambda s : s.rstrip(), f))
# 2 möflichkeit
lines = list(map(str.rstrip, f))
# 3 möglichkeit
#lines = []
#for line in f.readlines():
# lines.append(line.rstrip())
#f.close()
return lines
def parse_passwd_lines(line: str) -> "Dict of passwd details":
parts = line.split(':')
userdict = {
"username" : parts[0],
"uid" : parts[2],
"gid" : parts[3],
"gecos" : parts[4],
"home" : parts[5],
"shell": parts[6]
}
return userdict
def build_userlist(lines) -> "List of user dicts":
result = []
for line in lines:
result.append(parse_passwd_lines(line))
return result
def print_userlist_sorted_by_username(userlist):
#ruft für jedes Element key(elem) also e im Lambda-Ausdruck ist ein Element der Liste user dict
for user in sorted(userlist, key=lambda e: e['username'].lower()):
print(
user['username'],
user['uid'],
user['gecos'],
user['home'],
user['shell']
)
def print_userlist_sorted_by_uid(userlist):
pass
def main():
output_functions = {
'username': print_userlist_sorted_by_username,
'uid': print_userlist_sorted_by_uid,
}
outfunc = output_functions['username']
lines = read_file("/etc/passwd")
userlist = build_userlist(lines)
outfunc(userlist)
main()