Python—如果一个值包含超过2个字符,如何拆分并添加'-';中间
因此,我现在正试图做一些简单但难以思考的事情 基本上我有一个随机数发生器,它有时是:Python—如果一个值包含超过2个字符,如何拆分并添加'-';中间,python,split,slice,Python,Split,Slice,因此,我现在正试图做一些简单但难以思考的事情 基本上我有一个随机数发生器,它有时是: 12 1234 23 2345 等等 基本上我想做的是,只要有超过2个字符。添加空格并在空格之间添加“-”,表示输出关闭: 12 12 3-4 23 23 4-5 我试图拆分,但只删除了最后两个字符 我将感谢所有的帮助 解决方案: numbers = ['12', '1234', '23', '2345'] for number in numbers: number = str(number) #
12
1234
23
2345
等等
基本上我想做的是,只要有超过2个字符。添加空格并在空格之间添加“-”,表示输出关闭:
12
12 3-4
23
23 4-5
我试图拆分,但只删除了最后两个字符
我将感谢所有的帮助
解决方案:
numbers = ['12', '1234', '23', '2345']
for number in numbers:
number = str(number) # convert each to string just in case
if len(number) > 2:
number = number[:2] + ' ' + number[2] + '-' + number[3:]
print(number)
创建新的\u列表
numbers=list(map(str,numbers)) # to convert int to str
new_list=[i[:2] + ' ' + i[2] + '-' + i[3:] if len(i)>2 else i for i in numbers]
使用
map
更改为str
,然后使用带列表理解的格式化打印
lst = [12, 1234, 23, 2345]
lst = map(str, lst)
res = [f'{i[:2]} {i[2]}-{i[3]}' if len(i) > 2 else i for i in lst]
# ['12', '12 3-4', '23', '23 4-5']
为什么没有对问题进行评论就投了反对票:(?如果随机数是3或5位数怎么办?输出是什么?你最好读一下:你忘了添加你尝试过的内容以及失败的原因,在我创建的问题中也包括你尝试过的代码,所以它最多只能包含4个字符:)哦,当我只想添加某人给出的答案时,我认为这会解决我的问题!谢谢!:)谢谢这解决了我的问题,我非常感激!:)
lst = [12, 1234, 23, 2345]
lst = map(str, lst)
res = [f'{i[:2]} {i[2]}-{i[3]}' if len(i) > 2 else i for i in lst]
# ['12', '12 3-4', '23', '23 4-5']