我有一套
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}
但这也不起作用。我对词典比较陌生,所以如果答案就在我的面前,请原谅我。
答案 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()