使用列表推导将元素添加到引用字典中的字符串

时间:2017-09-05 21:54:36

标签: python python-2.7 list dictionary list-comprehension

我有一个字典如下:

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']

2 个答案:

答案 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