|
|
|
|
|
by wwfn
70 days ago
|
|
Tangential (but topical in that "The threat is comfortable drift toward not understanding what you're doing" is also on the front page): Is the generated python code in the example wrong? The prompt > Develop a Python function that removes any falsey values from a list. Return the modified list without creating a new one. Is answered with list comprehension, which makes a new list and leaves the original unmodified (never mind that the *args input necessarily can't be a modifiable list?) def remove_falsey_values(*args): return [val for val in args if val]
Whereas I'd expect something like def remove_falsey_values(l):
for i in reversed(range(len(l))):
if not l[i]: l.pop(i)
# returned list is linked to input l
return l
a = [1, 0, False, 'foo']
x = remove_falsey_values(a)
x[0] = 2
print(a) # [2,'foo']
|
|