Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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_List Comprehension_Strip - Fatal编程技术网

在Python中从元组列表中的字符串中删除字符

在Python中从元组列表中的字符串中删除字符,python,list-comprehension,strip,Python,List Comprehension,Strip,我正在使用GoogleDriveAPI作为我正在编写的应用程序的一部分。我目前有一个列表,其中包含以下信息的元组 文件名、文件ID: 我试图从每个元组的文件名部分删除财务报告。但奇怪的是,它也从元组的文件id部分剥离数据。下面是应用程序这一部分的代码片段 q_param = "'%s' in parents" % PARENT_ID files = [] response = drive_service.files().list(q=q_param, spaces='drive').e

我正在使用GoogleDriveAPI作为我正在编写的应用程序的一部分。我目前有一个列表,其中包含以下信息的元组 文件名、文件ID:

我试图从每个元组的文件名部分删除财务报告。但奇怪的是,它也从元组的文件id部分剥离数据。下面是应用程序这一部分的代码片段

q_param = "'%s' in parents" % PARENT_ID
files = []

response = drive_service.files().list(q=q_param,
    spaces='drive').execute()

for drive_file in response.get('files', []):
    files.append((drive_file.get('name'), drive_file.get('id')))

#Removing files that aren't labeled Finance report ...
files = [x for x in files if "Finance report" in x[0]]
#Stripping Finance Report from each file name
files = [tuple(x.strip('Finance report - ') for x in y) for y in files]
我从StackOverflow的一个帖子上得到了这条特定的线路,我发现它可以满足这种需求。但以下是剥离后的输出数据:

[(2017-08-30, 109fADijw_OLojk2nbcxziw2DK), (2017-08-24, 109Xjwj7Fuo_whoqpwl920jAAikLoE)]
前后:

109fADijw_OLojk2nbcxziw2DKn0, 109fADijw_OLojk2nbcxziw2DK
我不确定为什么会发生这种情况,因为我认为列表理解中的条带是在列表文件中每个元组x的x[0]上执行的


为什么会发生这种情况?

元组中的项不需要生成器表达式。仅在第一项上应用条带:

files = [(x.strip('Finance report - '), y) for x, y in files]
此外,由于剥离后留下的零件具有固定的宽度,因此您可以切片而不是剥离;剥离有时可能很有趣,因为它对每个角色有效,而不是对整个子字符串有效:

files = [tuple(x[-10:], y) for x, y in files]
files = [tuple(x[-10:], y) for x, y in files]