Python中不使用第三方库,能否用单行代码创建整数列表?
不用第三方库的单行Python整数列表创建方案
当然可以实现!你之前的尝试出错是因为对int()和list()的用法理解有点偏差:
list(int(1234))会报错,因为int(1234)返回的是单个整数,而list()需要传入可迭代对象(比如字符串、元组等),整数本身不能被迭代。list(int(1,2,3,4))也不对,因为int()函数最多只接受2个参数(第二个是进制数),传多个参数直接触发参数数量错误。
两种单行解决方案
方案1:列表推导式(最直观)
直接遍历输入字符串的每个字符,逐个转成整数:
lst = [int(char) for char in input('insert numbers: ')]
运行效果完全符合你的需求:
>>> lst = [int(char) for char in input('insert numbers: ')] insert numbers: 1234 >>> print(lst) [1, 2, 3, 4]
方案2:使用map()函数(更简洁)
利用map()把字符串的每个字符映射为整数,再转成列表:
lst = list(map(int, input('insert numbers: ')))
这个写法和上面的列表推导式效果完全一致,只是风格更偏向函数式编程。
额外小技巧
如果你希望打印时输出1, 2, 3, 4这种逗号分隔的格式(而非默认的列表形式),可以在打印时做个简单处理:
print(', '.join(map(str, lst)))
对比你原来的循环写法,这两种单行方式既简洁又直接,完全不需要第三方库就能实现目标~
内容的提问来源于stack exchange,提问作者NerfWarrior282
相关产品推荐
相关产品推荐

