吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1242|回复: 16
收起左侧

[求助] 【Python】怎么把汉字排在数字前面

[复制链接]
x66 发表于 2020-10-28 18:58

如 str_1 =‘190370052小明’
怎么转换成str_1 =‘小明190370052’
有大佬给出一个相对简单的方法吗?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

南岸 发表于 2020-10-28 19:15
本帖最后由 南岸 于 2020-10-28 19:18 编辑

我看看啊
str_1 ='190370052小明'
str_2 = ''
str_3 = ''
for i in str_1:
    if i.isdigit() == True:
        str_2 += i
    else:
        str_3 += i
str_1 = str_3+str_2
print(str_1)
XinSong 发表于 2020-10-28 19:17
南岸 发表于 2020-10-28 19:18
XinSong 发表于 2020-10-28 19:18
南岸 发表于 2020-10-28 19:15
我看看啊
[md]```
str_1 ='190370052小明'

你这个写法运行下来之后,数字还是数字,汉字还是在最后面= =
南岸 发表于 2020-10-28 19:19
XinSong 发表于 2020-10-28 19:18
你这个写法运行下来之后,数字还是数字,汉字还是在最后面= =

你在试试?
南岸 发表于 2020-10-28 19:21
刚才写错了
QQ截图20201028192112.png
XinSong 发表于 2020-10-28 19:21
[Python] 纯文本查看 复制代码
def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        pass
 
    try:
        import unicodedata
        unicodedata.numeric(s)
        return True
    except (TypeError, ValueError):
        pass
    return False
str_1 ='190370052小明'
str_2 = ''
str_3 = ''
for i in str_1:
    if is_number(i) == True:
        str_2 += i
    else:
        str_3 += i
print(str_3)
print(str_2)
str_1 = str_3+str_2
print(str_1)


这样子就可以了
XinSong 发表于 2020-10-28 19:22

感觉我写的好复杂啊。哈哈哈哈
cqfcy 发表于 2020-10-28 19:25
调用 re 正则表达式
[Python] 纯文本查看 复制代码
import  re
str_1 = '190370052小明'
num = re.findall('\d+', str_1)[0]
name = re.findall('[\u4e00-\u9fa5]+',str_1)[0]
str_1 = name + num
print(str_1)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
x66 + 1 + 1 我很赞同!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表