我想将下面的词典合并为一个。
module.exports = function(sequelize, DataTypes) {
var Todo = sequelize.define('Todo', {
name: DataTypes.STRING,
userId: DataTypes.INTEGER
},{
classMethods: {
associate: function(models) {
Todo.belongsTo(models.User); }}});
return Todo;};
最终输出应为单键值对,输出应为:
data1 = {
'color': ['red', 'blue', 'green']
} # from 1st sku
data2 = {
'color':[ 'red', 'yellow', 'orange', 'black']
} # from 2nd sku
data3 = {
'color': ['black', 'purple', 'yellow', 'pink']
} # from 3rd sku
i = 0
dict={} # i want to create new dict with combination of all the available dict data in single dict with single key i.e(same key) with integrated values in a single list
while i<10:
dict['color'] = #how to process further
答案 0 :(得分:0)
您可以尝试这种方式:
dicts = [data1, data2, data3]
total_dict = {}
for dict in dicts:
key = dict.keys()[0]
total_dict.setdefault(key, []).extend(v for v in dict[key] if v not in total_dict[key])
结果是:
total_dict =
{'color': ['red', 'blue', 'green', 'yellow', 'orange', 'black', 'purple', 'pink']}
答案 1 :(得分:-1)
data1 = { 'color':['red','blue','green'] } #from 1st sku
data2 = { 'color':['red','yellow','orange','black'] } #from 2nd sku
data3 = { 'color':['black','purple','yellow','pink'] } #from 3rd sku
datas = [data1, data2, data3]
results = {}
for data in datas:
for key, val in data.items():
def_val = results.get(key, []) # if key not exists, return []
def_val = set(def_val) | set(val) # merge two sets, and return unique items
results[key] = list(def_val)
def main():
print(results)
# output: {'color': ['pink', 'blue', 'orange', 'green', 'black', 'yellow', 'purple', 'red']}
if __name__ == "__main__":
main()
我认为此代码可以解决您的问题,只需复制即可尝试!