问题描述
限时送ChatGPT账号..我正在编写一个脚本来在子列表中保存读取路径.假设我有 400 个文件路径保存在一个列表中,每个路径都有特定的语法 Ci_whaterver.csv
,然后在我的路径列表中我有这样的东西:
I'm doing a script to save a read path in sublist. Let's suppose I have 400 file paths saved in a list, every path has the specific syntax Ci_whaterver.csv
, then in my pathlist I have something like this:
pathlist=[C1_01.csv,C1_02.csv,...,Cn_01.csv,Cn_02.csv]
我想最终在这种情况下对 pathlistf
进行排序或排序:
I would like to have finally a pathlistf
ordered or sort with this situation:
pathlistf=[[C1_01.csv,C1_02.csv,...],[C2_01.csv,C2_02.csv,...],...,[Cn_01.csv,Cn_02.csv,...]]
我不知道以这种方式重新排列路径.
I don't have idea to reorder the path to this way.
你好,我遇到了这个问题:我想问一些与过去的情况非常相似的问题,假设我有下一条路径:path=[case1_Qxxx_cap1_whatever.csv,case1_Qxxx_cap1_whatever2.csv,case1_Qxxx_cap1_whatever3.csv,....,case1_Qxxx_cap2_whatever.csv,case1_Qxxx_cap2_whatever2.csv,case1_Qxxx_cap2_whatever3.xxx_cap2_whatever3..,case2_Qxxx_cap2_whatever2.csv]
Hello again, i got this problem:
I would like to ask something very similar to the past case, let suppose i have the next path:
path=[case1_Qxxx_cap1_whatever.csv,case1_Qxxx_cap1_whatever2.csv,case1_Qxxx_cap1_whatever3.csv,....,case1_Qxxx_cap2_whatever.csv,case1_Qxxx_cap2_whatever2.csv,case1_Qxxx_cap2_whatever3.csv,case2_Qxxx_cap1_whatever.csv,case2_Qxxx_cap1_whatever2.csv,...,case2_Qxxx_cap2_whatever.csv,case2_Qxxx_cap2_whatever2.csv]
我想要这个:
pathf=[[[[case1_Qxxx_cap1_whatever.csv,case1_Qxxx_cap1_whatever2.csv,...],[case1_Qxxx_cap2_whatever.csv,Qxxx_cap2_whatever2.csv,...]],[[case2_Qxxx_cap1_whatever.csv,cap1_Qxxx2.csv,case2_Qxxx2.csv,...]..],[case2_Qxxx_cap2_whatever.csv,case2_Qxxx_cap2_whatever2.csv,...]]]
推荐答案
一种方法是创建一个 dictionary 并使用 Ci
部分作为键,以 Ci
开头的文件名列表将作为值.例如,取pathlist = ['C1_01.csv','C1_02.csv', 'C2_01.csv', 'C3_01.csv', 'C2_02.csv']
,那么我们将创建一个将存储
One way will be to create a dictionary and use the part Ci
as key and lists of file names starting with Ci
will be the value. For example, take pathlist = ['C1_01.csv','C1_02.csv', 'C2_01.csv' , 'C3_01.csv', 'C2_02.csv']
, then we will create a dictionary which will store
{'C1': ['C1_01.csv', 'C1_02.csv'], 'C2': ['C2_01.csv', 'C2_02.csv'], 'C3': ['C3_01.csv']}
代码如下:
pathlist = ['C1_01.csv','C1_02.csv', 'C2_01.csv' , 'C3_01.csv', 'C2_02.csv']
d = {}
for path in pathlist:
if path[:2] not in d:
d[path[:2]] = [path]
else:
d[path[:2]].append(path)
pathlistf = []
for key in d:
pathlistf.append(d[key])
print(pathlistf)
# Output: [['C1_01.csv', 'C1_02.csv'], ['C3_01.csv'], ['C2_01.csv', 'C2_02.csv']]
希望这能解决问题.如有任何疑问,请随时提出.
Hope this solves the problem. Feel free to ask any doubt.
这篇关于如何根据特定表达式在子列表中保存字符串列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论