从字典中的列表中删除元素

问题描述

此:

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[:]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...