gpt4 book ai didi

python - 将子流程的输出拆分为列表或元组

转载 作者:行者123 更新时间:2023-11-30 21:50:41 24 4
gpt4 key购买 nike

我有一个格式为的文件列表

[
'1582120598 672 /Users/user/Desktop/',
'1581847900 64 /Users/user/Desktop//untitled folder',
'1581842714 352 /Users/user/Desktop//RECEIPTS',
'1581686620 433097 /Users/user/Desktop//RECEIPTS/cameringo_20200214_132341.jpg'
]

我想将每个条目拆分为列表(或元组,如果这样会更好)。我目前正在使用这个:

new_list = list(map(lambda x: re.findall('(\d+)\s(\d+)\s(.*)',str(x)), copy_list))

但输出作为包装在 list 中的 tuple 返回。第一个条目是 [('1582120598, 672,/Users/user/Desktop/')] ,因此 new_list[0][0] 失败,而我想要它返回1582120598

感谢您的帮助

最佳答案

你需要其他小组吗?似乎对于您的特定用例,您可以通过在空格上拆分字符串而不是使用正则表达式来极大地简化您的 lambda:

>>> new_list = [
... '1582120598 672 /Users/user/Desktop/',
... '1581847900 64 /Users/user/Desktop//untitled folder',
... '1581842714 352 /Users/user/Desktop//RECEIPTS',
... '1581686620 433097 /Users/user/Desktop//RECEIPTS/cameringo_20200214_132341.jpg'
... ]
>>> first_fields = [y.split()[0] for y in new_list]
['1582120598', '1581847900', '1581842714', '1581686620']
>>> first_fields[0]
'1582120598'

否则,如果您还需要其他组:

>>> new_list = list(map(lambda x: re.findall('(\d+)\s(\d+)\s(.*)',str(x)), copy_list))
>>> first_fields = [x[0][0] for x in new_list]
['1582120598', '1581847900', '1581842714', '1581686620']
>>> first_fields[0]
'1582120598'

旁白:

您可以使用列表理解来简化 new_list 创建,如下所示:

new_list = [re.findall('(\d+)\s(\d+)\s(.*)',str(x)) for x in copy_list]

关于python - 将子流程的输出拆分为列表或元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60303644/

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