我有一个返回dict的python函数。现在我想多次调用这个函数,并将所有这些返回的dicts附加到第一个。
def generate_dict(greeting):
n = len(greeting)
i = int(np.random.random()*(n-1))
j = int(np.random.random()*(n-1))
text = greeting[i] + greeting[j]
start = text.find(greeting[i])
return {"text": text,
"Intention": "Greet",
"entity": [
{
"start": start,
"end": start + len(greeting[i]),
"value": greeting[i],
"entity": "Hello"
}
],
}
greeting = ['Hallo', 'Hey', 'Hi']
dict1 = generate_dict(greeting)
for k in range(1,10):
dict1[k] = generate_dict(greeting)
print dict1
这段代码给我的结果如下:
{1: {'text': 'HeyHey', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'}, 2: {'text': 'HeyHallo', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'}, 3: {'text': 'HeyHallo', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'}, 4: {'text': 'HeyHallo', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'}, ... }
但我想得到:
{'text': 'HeyHey', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'},{'text': 'HeyHallo', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'},{'text': 'HeyHallo', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'},{'text': 'HeyHallo', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'}, ...
我怎样才能达到这个目的?
答案 0 :(得分:0)
我想您需要一个列表来存储这些数据,也许您可以尝试:
dict1= [generate_dict(greeting) for k in range(1,10)]
dict1:
[{'text': 'HalloHallo', 'entity': [{'start': 0, 'end': 5, 'value': 'Hallo', 'entity': 'Hello'}], 'Intention': 'Greet'},
{'text': 'HalloHey', 'entity': [{'start': 0, 'end': 5, 'value': 'Hallo', 'entity': 'Hello'}], 'Intention': 'Greet'},
{'text': 'HeyHallo', 'entity': [{'start': 0, 'end': 3, 'value': 'Hey', 'entity': 'Hello'}], 'Intention': 'Greet'}...]