提问人:New2905 提问时间:11/16/2023 最后编辑:New2905 更新时间:11/16/2023 访问量:65
在 map 中使用计数器,在 Python 中使用 lambda
Using counter in map, lambda in Python
问:
我需要在不使用循环的情况下创建此列表 [“1”, “12”, “123”, “1234”, “12345”, ..., “123456789”]。如何使用 map、lambda 函数来做到这一点?
我可以像下面的代码一样做到这一点,但这不是我需要的:
lst = []
num = ""
for i in range(1,10):
num += str(i)
lst.append(num)
print(lst)
我也试过这个: lst = list(map(lambda x: str(x), range(1,10))) , 但我得到了 ['1', '2', '3', '4', '5', '6', '7', '8', '9'] 而不是 [“1”, “12”, “123”, “1234”, “12345”, ..., “123456789”]。
答:
0赞
Diego Torres Milano
11/16/2023
#1
也许
[e[:n] for n, e in enumerate(["123456789"]*10, 1)]
但不是 map 或 lambda。
0赞
blhsing
11/16/2023
#2
你的尝试是一个好的开始,但为了产生一串连接在一起的增量数字,你可以将另一个生成器映射到并将它们连接起来:list(map(lambda x: str(x), range(1,10)))
range
str
''.join
list(map(lambda n: ''.join(map(str, range(1, n + 1))), range(1, 10)))
评论