将值附加到集合中的键

时间:2018-04-27 16:22:27

标签: python dictionary

我有一套

codes = {'Code1', 'Code2', 'Code3'}

我想最终得到一个包含以下输出的字典

code_dict = {'Code1': 'Input_Code1', 'Code2': 'Input_Code2', 'Code3': 'Input_Code3'}

我尝试使用dict.fromkeys(),但我的输出完全搞砸了

for code in codes:
    code_dict = dict.fromkeys(codes, "Input_" + code)

我还尝试使用

codes中的值分配给istelf
codes = codes | {c for c in codes}

但这也不起作用。我对词典比较陌生,所以如果答案就在我的面前,请原谅我。

1 个答案:

答案 0 :(得分:3)

class MyForm extends React.Component { constructor(props) { super(props); this.uiSchema = {}; this.schema = { "title": "Files", "type": "object", "properties": { "file": { "type": "string", "format": "data-url", "title": "Single file" }, } } }; componentDidMount() { // How can I get access to the FileWidget's inputRef property here? } render() { return ( <Form schema={this.schema} uiSchema={this.uiSchema} liveValidate /> ) } }; 不会对值进行表达;你得到一个字典所有相同的值(从技术上讲,所有值都是对一个对象的引用,在键之间共享)。

你的循环刚刚为dict.fromkeys()集合中的每个code创建了一个全新的字典,每个字典都替换了前一个对象codes。最后你会得到一个字典,其中所有键都设置为相同的值,其中的值基于迭代时最后生成的无序集合中的任何元素。

如果您需要生成不同的值,请使用dict理解:

code_dict

字典理解在循环的每次迭代中在左侧执行两个表达式,一个产生键(上面示例的code_dict = {code: "Input_" + code for code in codes} ),一个用于值(这里是字符串的串联)文字和code)。

正确使用code和字典理解的演示:

dict.fromkeys()