jcpython2 发表于 2022-10-13 15:02:01

用户输入用map转list,但不拆分

本帖最后由 jcpython2 于 2022-10-13 15:03 编辑

题目要求map转用户输入为list,题目只举例了单位数比如 a b c 转为 ['a'] ['b'] ['c']

如果输入a b cc会输出['a'] ['b'] ['c', 'c']

但我想实现转为 ['a'] ['b'] ['cc']


我的代码
x,y,z = map(list,input().split(' '))
print(x,y,z)

能否用类似方法写出我想要的效果? 想加深现基础上map的用法,本来尝试了map(list再嵌套map(str但报错

阿奇_o 发表于 2022-10-13 15:40:09

本帖最后由 阿奇_o 于 2022-10-13 15:43 编辑

需求不太明确(是最后一个就不用转list,还是字符个数超过1的不用转,还是相同字符的不用转?),这样?
x, y, z = map(lambda x: list(x) if len(x)==1 else , input().split())
a b cc
print(x, y, z)
['a'] ['b'] ['cc']

dami27 发表于 2022-10-13 16:02:23

发错地方了,请无视

jcpython2 发表于 2022-10-13 20:39:18

阿奇_o 发表于 2022-10-13 15:40
需求不太明确(是最后一个就不用转list,还是字符个数超过1的不用转,还是相同字符的不用转?),这样?

就是想知道map有没有原生的功能实现 a b cc得出 ['a'] ['b'] ['cc']

阿奇_o 发表于 2022-10-13 22:09:14

本帖最后由 阿奇_o 于 2022-10-13 22:14 编辑

jcpython2 发表于 2022-10-13 20:39
就是想知道map有没有原生的功能实现 a b cc得出 ['a'] ['b'] ['cc']

原生功能? 你是不会用 help(map),不会查文档、查例子,还是连百度都不会用?

还是说,一遇到问题,或一有个“奇思妙想”,就上来这里发帖提问 ??

哦,我再仔细看看你的提问,“想深入”、“想嵌套”?

简单地说,map 等价于与for循环(对列表等可迭代对象进行遍历,逐一进行同样的操作,比如 list(x)
    另外加上一个 yield 的语法。。 最终返回的是一个类似生成器的map object,而不是列表。 (map 其实是一个类,没想到吧,我也是才注意到。。)
    嗯,这似乎是“高阶魔法”了, 一时半会又是解释不清了。。

反正是你还没理解 map 的基本逻辑,就想瞎整,多搜几个基本例子吧,暂时知道怎么用就好了。
等学到 生成器 部分,再“深入”吧,可以试试 自定义一个生成器函数 来实现和map类似的功能。

想深入是好的,但不是每学一个知识点都非得深究。更重要的是:基本用法、基本概念,以及“小步快跑”(老卡壳老纠结咋行呢~)




页: [1]
查看完整版本: 用户输入用map转list,但不拆分