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']