pitón, golang tipo de colección de datos varios (II)

Conectado a una

2. Diccionario

    1) pitón

  pitón basado en diccionario '{}' de dicha matriz con '[]' está representado tupla en tupla '()' de la fig.

  a) inicialización

  Con tecla: de valor de inicialización en la línea.

1 >>> a = {1: 2, " 2 " : 3, " 3 " : " 4 " }
 2 >>> un
 3 {1: 2, ' 3 ' : ' 4 ' , ' 2 ' : 3}

  clave, tipo de valor, en el que un diccionario puede tener múltiples (Nota: la clave no puede ser matrices (Lista), porque la clave no puede ser modificado, puede ser una tupla (tupla)) . Si durante la inicialización, escriba la misma clave, por lo que después de escribir llave de anulación antes.

1 >>> b = {1: " aaa " , 1: " bbb " }
 2 >>> b
 3 {1: ' bbb ' }

  b) elemento de acceso

  Directamente por [] para tomar, un poco como array (lista), pero los soportes del medio es clave, no un subíndice.

1 >>> a [ " 2 " ]
 2 3
 3 >>> a [1 ]
 4 2
 5 >>> a [2 ]
 6  Rastreo (llamada último el más reciente):
 7    File " <stdin> " , línea 1, en <módulo>
 8 KeyError: 2

  Sin este error de clave. En general, es de hacer juicio;

. 1 >>> A = {1:. " AAA " , 2: " BBB " ., 3: " CCC " }
 2 (. 3) >>> a.has_key   # método diccionario de llevar has_key 
. 3  Verdadero
 . 4 >>> A. has_key (. 4 )
 . 5  Falso
 . 6 >>>. 3 en un   # Val Key en los métodos dict, y la matriz como en la lista. 
. 7  Verdadero
 . 8 >>>. 4 en A
 . 9 Falso

  Transversal:

1  para k en un:
 2      de impresión  "k : " , k
 3  
4  para (k, v) en a.items ():
 5      de impresión  " k: " , k, "v: " , v
 6 7 para k, v en a.iteritems ():
 8 de impresión " k: " , K, "V: " , v 
       

  Donde k La primera forma es el valor clave, no el valor de valor; array (lista) devuelve el valor de dicho recorrido, en lugar del subíndice (subíndice regresó diciendo también carece de importancia ..O__O ah" ...) Debe ser. prestar atención a la siguiente.

  c) modificar los elementos

  asignación directa. Puede modificar el valor de cualquier tipo. Nota Si modifica el valor en el recorrido. Por ejemplo, en el ejemplo de arriba, la asignación no se puede cambiar v = xxx diccionario sí mismo.

1 a [1] = " 2 " 
2 a [1] = 22
 3 a [1] = { " k1 " : " v1 " , " k2 " : " v2 " }

  d) elementos de inserto

  Al igual que los elementos de forzado de la operación. asignación directa, clave que no existe es para insertar nuevos elementos.

  e) Eliminación de elementos

  1. Puede utilizar la palabra clave del. Retire los elementos de diccionario (Del mismo modo, si la clave no existe en un valor [clave] será informado de manera anormal), o eliminar el diccionario sí mismo. Esto es similar a la operación de la matriz.

1 >>> a = {1: " aaa " , 2: " bbb " }
 2 >>> del a [1]   # 删除字典元素
3 >>> un
 4 {2: ' bbb ' }
 5  
6 >>> del un   # 删除字典
7 >>> un
 8  Rastreo (llamada más reciente pasado):
 9    File " <stdin> " , línea 1, en <módulo>
 10 NameError:nombre de ' un ' se  no definido

  2. Uso del diccionario incorporado métodos

. 1 >>> A = {1:. " AAA " :, 2 " BBB " }
 2 (1.) >>> a.pop   # usando pop método (tecla). Pero si la clave no existe, un informe de excepción. 
. 3  ' AAA ' 
4. >>> A
 5. {2: ' BBB ' }
 6.  
7. >>> a.pop (3,. "" )   # Método POP se puede utilizar con los parámetros por defecto (no es una cadena vacía "), y" por lo que si la llave 3 no está presente, el valor por defecto de "retorno". 
. 8  '' 
. 9  
10  
. 11 >>> a.clear ()    # puede borrar (), 
Borrar toda el diccionario (diferente de la del, el diccionario en sí es todavía aquí). 12 es >>> A
 13 es {}

 

2) golang

  a) inicialización 

La clave puede ser cualquier mapa se puede utilizar == o! Type = operador de comparación, tales como cadena, int, float. Por lo tanto arrays, rebanadas, y no como una estructura clave (Nota: La estructura comprende un conjunto de rodajas no como la clave, sólo el tipo incorporado que comprende una estructura se utiliza como una clave) tipo, pero el puntero y puede interactuar. Puede ser cualquier tipo de valor, incluyendo las funciones de otros tipos de interfaz.

Por motivos de rendimiento, o para un gran mapa será rápida expansión del mapa, aunque sólo sea una vaga idea de la capacidad, también es una buena idea para indicar su capacidad de capacidad.

var un mapa [int] string // definición sólo un acabado, el valor es nulo, una referencia directa se Lanza 
b: = make (map [int ] string) // inicializan array terminado puede utilizar 
a = b // asignando, para completar la inicialización de un 
var un mapa [int] string = mapa [int] string {123: "abc", 456: "aaa"} // inicialización completa 
a: = mapa [int] string {123: " abc "456:" AAA " } // inicialización completa  
a: = make (map [int ] string, 100) // inicializar una matriz, y le da la capacidad inicial

 

  b) elemento de acceso

  valor de uso directo [] por la llave (aunque ya rápido, pero aún mucho más lento que [valores de la matriz y la rebanada]).

valor: = el valor cero si la clave no existe map1 [tecla] //, devuelve un valor (es decir, un valor de cadena es "", valor es un puntero a una interfaz o similares es nil). Este no es el mismo y pitón. 
valor, OK: = map1 [clave ] // determina si la tecla OK se puede basar en la existencia, es cierto que existe; false no existe, su valor se le da un valor de cero.

  Transversal:

El mapa subyacente es una tabla hash para lograr, por lo que el mapa no será la clave de ordenación.

map1: = mapa [int] {123 cadena: "aaa", 234: "bbb", 345: "ccc"} 
para la llave: = map1 gama {//这里和pitón类似
	... 
} 

para la clave, valor: = gama map1 { 
	... 
} 

para la llave, _: = rango map1 { 
	... 
} 

para _, valor: = map1 gama { 
	... 
}

  

  c) modificar los elementos

Utilice [] asignación directa. En general, el valor está fuera de servicio una vez más, no es hasta el fin de modificar el propio mapa. Este es el mismo pitón.

Clave para, valor: Rango = {map1 
	map1 [clave] = "ddd" map1 // valor de forzado del 
	valor = "ddd" // copiar sólo el valor modificado aquí, no se puede modificar el valor en el map1 
}

  

  d) elementos de inserto

Al igual que los elementos de forzado de la operación. asignación directa, clave que no existe es para insertar nuevos elementos.

  e) Eliminación de elementos

delete (map1, key1) // incluso si no existe key1, no se queja. Este es el del a [clave] pitón se quejan no es lo mismo.

  

Supongo que te gusta

Origin www.cnblogs.com/zxq89/p/10697664.html
Recomendado
Clasificación