gpt4 book ai didi

python - 如何按数字拆分列表列表?

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:48 26 4
gpt4 key购买 nike

my_list = ['Rob Kardashian 00052369 1987-03-17 Reality Star',
'Brooke Barry 00213658 2001-03-30 TikTok Star',
'Bae De Leon 00896351 1997-08-02 Volleyball Player',
'Jonas Blue 02369785 1990-08-02 Music Producer']

我有一个人名、ID、DOB 和职业的列表。我想按姓名、ID、DOB 和他们的职业拆分每个人。

我尝试了一些愚蠢的方法,但只能完成部分工作,我想知道是否有更好的解决方案?

下面是我的代码:

import re 

def remove(my_list):
pattern = '[0-9]'
my_list = [re.sub(pattern, '', i) for i in my_list]
return my_list

print(remove(my_list))

但是数字不见了 ['Rob Kardashian -- 真人秀明星'、'Brooke Barry -- TikTok 明星'、'Bae De Leon -- Volley 运动员'、'Jonas Blue -- 音乐制作人']

然后,我删除了'--'

[s.replace(' -- ',' ') for s in remove(my_list)]

['Rob Kardashian Reality Star','Brooke Barry TikTok Star','Bae De Leon Volleyball Player','Jonas Blue Music Producer']

我的预期输出是一个数据框:

enter image description here

pd.DataFrame(my_list)

感谢您的帮助。

最佳答案

您可以使用 re.split :

import re
my_list = ['Rob Kardashian 00052369 1987-03-17 Reality Star', 'Brooke Barry 00213658 2001-03-30 TikTok Star', 'Bae De Leon 00896351 1997-08-02 Volleyball Player','Jonas Blue 02369785 1990-08-02 Music Producer']
new_l = [re.split('\s(?=\d)|(?<=\d)\s', i) for i in my_list]

输出:

[['Rob Kardashian', '00052369', '1987-03-17', 'Reality Star'], 
['Brooke Barry', '00213658', '2001-03-30', 'TikTok Star'],
['Bae De Leon', '00896351', '1997-08-02', 'Volleyball Player'],
['Jonas Blue', '02369785', '1990-08-02', 'Music Producer']]

正则解释:

\s(?=\d) : 匹配空格后跟数字的任何实例。

| (交替):尝试匹配其左侧的每个表达式或右侧的每个表达式,一旦找到有效匹配就停止。

(?<=\d)\s : 匹配以数字开头的空格的任何实例。

关于python - 如何按数字拆分列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56979262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com