问题描述
此:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
emp cannot be resolved to a variable
Syntax error on token "-",-- expected
emp cannot be resolved to a variable
给出以下内容:
{1:[1、2、3、4],2:[1、2、3、4],3:[1、2、3、4]}
{1:[1、2、4],2:[1、2、3、4],3:[1、2、3、4]}
这是我期望的,但这是
deck = {1:[1,2,3,4],2:[1,3:[1,4]}
print(deck)
del deck[1][2]
print(deck)
给出以下内容:
{1:[1、2、3、4],2:[1、2、3、4],3:[1、2、3、4]}
{1:[1、2、4],2:[1、2、4],3:[1、2、4]}
您可以看到del关键字删除了每个键值的索引2,而不仅仅是键值1。 抱歉,如果这很明显,我正在学习并且对此感到困惑。
解决方法
字典中的每个元素都有对相同列表的引用。因此,当您从其中一个元素中删除一个元素时,该元素在所有元素中都是可见的(如上所述,因为它们实际上是相同的列表!)。
相反,字典的每个元素应具有列表的不同副本:
import React from 'react';
import { TextField } from '@material-ui/core';
export interface MobileNumberProps {
}
export interface MobileNumberState {
value: any
}
class MobileNumber extends React.Component<MobileNumberProps,MobileNumberState> {
state = {
value: 0,}
handleChange = (value: any) => {
this.setState({ value: value })
}
render() {
return (
<TextField
type="number"
onChange={(event: any) => {
event.persist();
console.log('event is ',event);
if (event.which != 8 && event.which != 0 && (event.which < 48 || event.which > 57)) {
console.log('stopped')
event.preventDefault();
}
else {
console.log('event which is ',event.which);
console.log('allowed');
let value = event.target.value
this.handleChange(value);
}
}}
value={this.state.value}
/>
);
}
}
export default MobileNumber;
旁注:
此循环可以用更“ pythonic”的dict-comprehension代替:
for i in range(len(deck)):
deck[i+1] = suit[:]