Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据特定的表达式在子列表中保存字符串列表?_Python_Python 3.x_List_Arraylist_Path - Fatal编程技术网

Python 如何根据特定的表达式在子列表中保存字符串列表?

Python 如何根据特定的表达式在子列表中保存字符串列表?,python,python-3.x,list,arraylist,path,Python,Python 3.x,List,Arraylist,Path,我正在做一个脚本来保存子列表中的读取路径。假设我有400个文件路径保存在一个列表中,每个路径都有特定的语法Ci_whatever.csv,那么在我的路径列表中我有如下内容: pathlist=[C1_01.csv,C1_02.csv,...,Cn_01.csv,Cn_02.csv] 我希望最后有一个路径列表f在这种情况下进行排序: pathlistf=[[C1_01.csv,C1_02.csv,...],[C2_01.csv,C2_02.csv,...],...,[Cn_01.csv,Cn_

我正在做一个脚本来保存子列表中的读取路径。假设我有400个文件路径保存在一个列表中,每个路径都有特定的语法
Ci_whatever.csv
,那么在我的路径列表中我有如下内容:

pathlist=[C1_01.csv,C1_02.csv,...,Cn_01.csv,Cn_02.csv] 
我希望最后有一个
路径列表f
在这种情况下进行排序:

pathlistf=[[C1_01.csv,C1_02.csv,...],[C2_01.csv,C2_02.csv,...],...,[Cn_01.csv,Cn_02.csv,...]]
我不知道如何重新排列通往这条路的路径

您好,我遇到了这个问题: 我想问一些与过去案例非常相似的问题,假设我有下一条路径: (代码>路径:<代码>路径:[案例1.0 0 0 0 0 0 0 0 0 0 0 1.1 0 0 0 0 0 0 0 0 0 2.csv,案例1.1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.csv,案例1 1.1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.csv,1.csv,案例1 1.1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>

我想要这个:


pathf=[[case1_Qxxx_cap1_whatever.csv,case1_Qxxx_cap1_whatever 2.csv],[case1_Qxxx_cap2_whatever.csv,Qxxx_cap2_whatever 2.csv,[[case2_Qxxx_cap1_whatever.csv,case2_Qxxx_cap1_whatever 2.csv,][case2

一种方法是创建一个,并使用部分
Ci
作为键,以
Ci
开头的文件名列表将作为值。例如,以
pathlist=['C1_01.csv'、'C1_02.csv'、'C2_01.csv'、'C3_01.csv'、'C2_02.csv']
为例,我们将创建一个字典来存储

{'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']]

希望这能解决问题。请随时询问任何疑问。

如果预先排序了
路径列表
,您可以基于以下代码使用

从itertools导入groupby
路径列表=['Cn_01.csv'、'C1_02.csv'、'C9_01.csv'、'C9_02.csv'、'Ca_01.csv'、'C9_03.csv'、'Ca_02.csv'、'C1_01.csv'、'Cn_02.csv']
pathlist.sort()
groupedfilenames=(groupby(路径列表,key=lambda:a[:2])中g的列表(g)
打印(列表(GroupedFileName))
输出:

['C1_01.csv','C1_02.csv',['C9_01.csv','C9_02.csv','C9_03.csv'],['Ca_01.csv','Ca_02.csv'],['Cn_01.csv','Cn_02.csv']

非常感谢,先生,这正是我想要的,谢谢!我不知道如何重新安排这条路你根本不知道从哪里开始?