问题描述
我的列表如下所示:['https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2021/BAK CAN CER 37.pdf','https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2020/BAK CAN CER 34.pdf','https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2021/BAK CAN CER 38 FERC 3120 BAK US.pdf']
我想从每个元素的末尾获取每个 CER # 并创建一个字典,其中 CER # 作为键,整个元素作为相应的输出。
例如,字典如下所示:tariffs = {'CER 37': 'https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2021/BAK CAN CER 37.pdf',etc.}
解决方法
tariff_dict = {value[value.find(" CER ")+1:(value.find(" CER ")+7)]: value for value in my_list}
,
lst = [
'https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2021/BAK CAN CER 37.pdf','https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2020/BAK CAN CER 34.pdf','https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2021/BAK CAN CER 38 FERC 3120 BAK US.pdf'
]
dictionary = {}
for item in lst:
splitted = item.split(' ')
index = splitted.index('CER')
key = f'{splitted[index]} {splitted[index + 1].replace(".pdf","")}'
dictionary[key] = item
print(dictionary)
返回
{
'CER 37': 'https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2021/BAK CAN CER 37.pdf','CER 34': 'https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2020/BAK CAN CER 34.pdf','CER 38': 'https://www.enbridge.com/Projects-and-Infrastructure/For-Shippers/Tariffs/Enbridge-Bakken-Pipeline-Company-Inc-Bakken-Canada-tariffs.aspx/~/media/Enb/Documents/Tariffs/2021/BAK CAN CER 38 FERC 3120 BAK US.pdf'
}