鱼C论坛

 找回密码
 立即注册
查看: 2317|回复: 4

[已解决]python如何把一个字符串均匀切片?

[复制链接]
发表于 2022-9-8 15:26:40 | 显示全部楼层 |阅读模式
50鱼币
已知:data_list=['06091214202810', '09101218293214', '04161819272804', '02060715202115'']
求解:list_1=['06', '09', '12', '14', '20', '28', '10','09', '10', '12', '18', '29', '32', '14', '04', '16', '18', '19', '27', '28', '04', '02','06', '07', '15', '20',' 21', '15']
是的,没猜错,就是爬取的最近几期彩票的开奖码,可惜是开过的55555
现在的问题是,我需要把'06091214202810',分解成['06', '09', '12', '14', '20', '28', '10'],大佬们有没有简短的好方法?因为后续我打算每期开奖码以期号单独为一个变量,例如:issue_2022103 = ['06', '09', '12', '14', '20', '28', '10'],靠我这个方法顶不住哇。
目前方式:
    list_1 = []
    for i in data_list:
        list_1.append(int(i[0:2]))
        list_1.append(int(i[2:4]))
        list_1.append(int(i[4:6]))
        list_1.append(int(i[6:8]))
        list_1.append(int(i[8:10]))
        list_1.append(int(i[10:12]))
        list_1.append(int(i[12:14]))
    print(list_1)
最佳答案
2022-9-8 15:26:41
本帖最后由 cflying 于 2022-9-8 20:49 编辑
import re
data_list=['06091214202810', '09101218293214', '04161819272804', '02060715202115']
for i in data_list:
    print(re.findall('\d{2}',i))
或者这种也行
import re
data_list=['06091214202810', '09101218293214', '04161819272804', '02060715202115']
print(re.findall('\d{2}',str(data_list)))
自己改成list即可

最佳答案

查看完整内容

自己改成list即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-8 15:26:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 cflying 于 2022-9-8 20:49 编辑
import re
data_list=['06091214202810', '09101218293214', '04161819272804', '02060715202115']
for i in data_list:
    print(re.findall('\d{2}',i))
或者这种也行
import re
data_list=['06091214202810', '09101218293214', '04161819272804', '02060715202115']
print(re.findall('\d{2}',str(data_list)))
自己改成list即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-8 15:35:14 | 显示全部楼层
本帖为转载帖
见https://blog.csdn.net/qdPython/article/details/105751520
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-8 15:52:40 | 显示全部楼层


可以这样:
data_list = ['06091214202810', '09101218293214', '04161819272804', '02060715202115']
ist_1 = []
for i in data_list:
    for j in range(0, len(i), 2):
        ist_1.append(i[j:j+2])
print(ist_1)

列表推导式简化代码:
data_list = ['06091214202810', '09101218293214', '04161819272804', '02060715202115']
ist_1 = [i[j:j+2] for i in data_list for j in range(0, len(i), 2)]
print(ist_1)


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-8 16:28:17 | 显示全部楼层
data_list = ['06091214202810', '09101218293214', '04161819272804', '02060715202115']
list_1 = [k[i*2:i*2+2] for k in data_list for i in range(int(len(k)/2))]
print(list_1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 18:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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