我有一个字典如下:
s = {'lorem': set(['test1', 'test2'])}
和文本文件如下:
data = "Lorem ipsum dolor sit amet consectetur adipiscing elit"
我写了一个脚本如下:
[[word, s[word]] if word in s else word for word in data.lower().split()]
输出如下所示的列表:
[['lorem', set(['test1', 'test2'])], 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit']
如何重写上述脚本以输出以下列表:
['lorem', 'test1', 'test2', 'ipsum', 'dolor', 'sit', 'amet', 'onsectetur', 'adipscing', 'elit']
答案 0 :(得分:4)
您可以解包列表推导右侧的设置。使用dict.get
而不是测试dict中项目的包含:
lst = [w for word in data.lower().split() for w in [word] + list(s.get(word, ()))]
print(lst)
# ['lorem', 'test1', 'test2', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit']
答案 1 :(得分:0)
你可以试试这个:
['Lorem', 'test1', 'test2', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit']
输出:
this.string