[英]Replacing parts of string from values in dict in python
我在 python 中有一本字典,例如 -
partitions = {'train': ['data/xyz/id-1', 'data/xyz/id-2', 'data/xyz/id-3',......],
'validation': ['data/pqr/id-4','data/pqr/id-5',.......]}
對於鍵“train”的所有值,我想將“data/xyz”替換為“samples/folder1”。
新值將是
樣本/文件夾1/id-1、樣本/文件夾1/id-2、樣本/文件夾1/id-3等
同樣,對於鍵 'validation' 的所有值,'data/pqr' 到 'samples/test'。
我無法弄清楚如何以簡潔的方式做到這一點。 任何幫助將不勝感激。
這些只是分配給鍵的列表,因此您可以使用列表推導來重建列表並替換字符串中的值。
partitions = {
'train': ['data/xyz/id-1', 'data/xyz/id-2', 'data/xyz/id-3'],
'validation': ['data/pqr/id-4', 'data/pqr/id-5']
}
print(partitions)
partitions['train'] = [value.replace('data/xyz', 'samples/folder1') for value in partitions['train']]
partitions['validation'] = [value.replace('data/pqr', 'samples/test') for value in partitions['validation']]
print(partitions)
OUTPUT
{'train': ['data/xyz/id-1', 'data/xyz/id-2', 'data/xyz/id-3'], 'validation': ['data/pqr/id-4', 'data/pqr/id-5']}
{'train': ['samples/folder1/id-1', 'samples/folder1/id-2', 'samples/folder1/id-3'], 'validation': ['samples/test/id-4', 'samples/test/id-5']}
使用簡單的循環和replace
字符串:
partitions = {'train': ['data/xyz/id-1', 'data/xyz/id-2', 'data/xyz/id-3'],
'validation': ['data/pqr/id-4','data/pqr/id-5']}
replaces = {'train' : ['samples/folder1', 'data/xyz'] , 'validation' : ['samples/test','data/pqr']}
for key , value in partitions.items():
temp = []
for v in value:
temp.append(v.replace(replaces[key][1], replaces[key][0]))
partitions[key] = temp
print(partitions)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.