gpt4 book ai didi

python - 字符串列表,想将它们分成两个列表

转载 作者:行者123 更新时间:2023-11-28 20:55:49 26 4
gpt4 key购买 nike

我正在尝试拆分目录中的文件名字符串列表。文件是成对生成的。一个是原始的,第二个是修改的。所以列表看起来像这样:

files = ['data1', 'data2', 'data3', 'data1-m', 'data2-m', 'data3-m']

但都是乱码。
我想创建两个列表,其中索引彼此对应,如下所示:

original_files = ['data1','data2','data3']
modified_files = ['data1-m','data2-m','data3-m']

目前我有:

noised_files = [x for x in files if 'm' in x]
original_files = [x for x in files if not 'm' in x]

它确实拆分了列表,但它不是成对的,我想要的是:

>original_files[0] = 'data1'
>noised_files[0] = 'data1-m'

谢谢。

最佳答案

list-comprehensionstr.endswith()sorted() 结合使用:

files = ['data3', 'data1', 'data2', 'data2-m', 'data3-m', 'data1-m']

files = sorted(files)
print([x for x in files if x.endswith('m')])
print([x for x in files if not x.endswith('m')])

编辑:

也可以这样写:

noised_files = [x for x in files if x.endswith('m')]
original_files = [x for x in files if x not in noised_files]

print(original_files[0]) # data1
print(noised_files[0]) # data1-m

编辑 2:

使用filter():

print(list(filter(lambda x: x.endswith('m'), files)))
print(list(filter(lambda x: not x.endswith('m'), files)))

输出:

['data1-m', 'data2-m', 'data3-m']
['data1', 'data2', 'data3']

关于python - 字符串列表,想将它们分成两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55832106/

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