簡體   English   中英

從 python 中的 dict 值替換部分字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM