[英]How to manipulate the list within a dictionary and add modify the values to create a new dictionary?
[英]How to use a dictionary to manipulate a list per element within a string?
我有一個清單和一個字典:
list1 = ['C1','C1C2C3C4','C3C4C5','C2C4C5']
dict1 = {'C2C4':1, 'C3':1}
我希望掃描列表,並且即使字符串為C2C3C4C5,如果字符串中彈出C2C4,因為它包含C2 和 C4,我希望它在列表中轉為1。 如果C3出現在任何字符串中,那么對於C3可以說相同,那么我希望它在列表中變成1,而當C3在C3C4C5中出現時,它也應該變成1,即得到以下輸出:
list1 = [0,1,1,1]
我一直在這個網站上找到這種方法:
result = [(lambda x:0 if not x else min(x))([b for a, b in dict1.items() if i in a]) for i in list1]
但這在這種情況下不起作用,因為它不會拾取字符串中的不同組件,因此輸出:
Results = [0, 0, 0, 0]
........有人可以幫忙嗎?
您可以將listcomp與一個小的輔助函數一起使用:
import re
list1 = ['C1', 'C1C2C3C4', 'C3C4C5', 'C2C4C5']
dict1 = {'C2C4': 1, 'C3': 1}
def func(s):
for k, v in dict1.items():
if all(i in s for i in re.findall('\w\d', k)):
return v
else:
return 0
[func(i) for i in list1]
# [0, 1, 1, 1]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.