python构造字典的坑(python字典有什么特点?)

发布时间:2022-11-15

本文目录一览:

  1. Python中创建字典的几种方法总结
  2. python 字典创建问题?
  3. python字典中如何创建字典
  4. Python字典创建、基本操作以及常用方法

Python中创建字典的几种方法总结

  1. 传统的文字表达式:
    d = {'name': 'Allen', 'age': 21, 'gender': 'male'}
    d
    
    {'age': 21, 'name': 'Allen', 'gender': 'male'}
    
    如果你可以事先拼出整个字典,这种方式是很方便的。
  2. 动态分配键值:
    d = {}
    d['name'] = 'Allen'
    d['age'] = 21
    d['gender'] = 'male'
    d
    
    {'age': 21, 'name': 'Allen', 'gender': 'male'}
    
    如果你需要一次动态地建立一个字典的一个字段,那么这种方式比较合适。 字典与列表不同,不能通过偏移量进行复制,只能通过键来读取或赋值,所以也可以这样为字典赋值,当然访问不存在的键会报错:
    d[1] = 'abcd'
    d
    
    {1: 'abcd', 'age': 21, 'name': 'Allen', 'gender': 'male'}
    
    d[2]
    
    Traceback (most recent call last):
      File "pyshell#9", line 1, in moduled[2]
      KeyError: 21245678
    
  3. 字典键值表
    c = dict(name='Allen', age=14, gender='male')
    c
    
    {'gender': 'male', 'name': 'Allen', 'age': 14}
    
    因为这种形式语法简单,不易出错,所以非常流行。 这种形式所需的代码比常量少,但是键必须都是字符串才行,所以下列代码会报错:
    c = dict(name='Allen', age=14, gender='male', 1='abcd')
    
    SyntaxError: keyword can't be an expression
    
  4. 字典键值元组表
    e = dict([('name', 'Allen'), ('age', 21), ('gender', 'male')])
    e
    
    {'age': 21, 'name': 'Allen', 'gender': 'male'}
    
    如果你需要在程序运行时把键和值逐步建成序列,那么这种方式比较有用。
  5. 所有键的值都相同或者赋予初始值:
    f = dict.fromkeys(['height', 'weight'], 'normal')
    f
    
    {'weight': 'normal', 'height': 'normal'}
    

python 字典创建问题?

python创建文件与文件夹

  1. 文件的创建:
    一般创建 .txt 文件使用函数 open(file, 'mode')
    • file 为文件地址,若不存在则新建,若不再本目录下,可以写绝对路径。
    • mode 有以下几种方式:
      • r 只读
      • rb 二进制只读
      • w 写入且原有内容覆盖
      • a 在文件末尾追加 打开后文件需要 .close() 关闭。
  2. 文件夹的创建:
    使用 os.mkdir(ad) 方式建立,ad 为新建文件夹名称的绝对路径。

python字典中如何创建字典

python---创建字典的方式

  1. {} 创建字典
    x = {"a": "1", "b": "2"}
    print(x)
    
    输出:
    {'a': '1', 'b': '2'}
    
  2. 用内置函数 dict() (1) 入参为类似 a="1" 的键值对
    x = dict(a="1", b="2")
    print(x)
    
    输出:
    {'a': '1', 'b': '2'}
    
    (2) 入参为一个元组,元组内部是一系列包含两个值的元组,例如 (("a", "1"), ("b", "2"))
    x = dict((("a", "1"), ("b", "2")))
    print(x)
    
    输出:
    {'a': '1', 'b': '2'}
    
    (3) 入参为一个元组,元组内部是一系列包含两个值的列表,例如 (["a", "1"], ["b", "2"])
    x = dict((["a", "1"], ["b", "2"]))
    print(x)
    
    输出:
    {'a': '1', 'b': '2'}
    
    (4) 入参为一个列表,列表内部是一系列包含两个值的元组,例如 [("a", "1"), ("b", "2")]
    x = dict([("a", "1"), ("b", "2")])
    print(x)
    
    输出:
    {'a': '1', 'b': '2'}
    
    (5) 入参为一个列表,列表内部是一系列包含两个值的列表,例如 [["a", "1"], ["b", "2"]]
    x = dict([["a", "1"], ["b", "2"]])
    print(x)
    
    输出:
    {'a': '1', 'b': '2'}
    
    注意:
    • 对于 a="1" 的方式初始化字典,字典的 key 只能为字符串,并且字符串不用加引号。
    • 对于 dict 内置函数初始化,当入参是一个元组时,例如 1)、2),元组内部的两元素元组或者列表至少为两个,否则会出错。
  3. 使用 fromkeys 方法创建字典
    dict.fromkeys(("a", "b"), 1)
    print(x)
    
    输出:
    {'a': 1, 'b': 1}
    
    入参的第一个参数是一个列表或者元组,里边的值为 key,第二个参数是所有 key 的 value 值。

Python字典创建、基本操作以及常用方法

创建一个空字典只需要一对大括号即可,从已有的键-值对映射或关键字参数创建字典需要使用 dict 函数(类)。 把一个列表转为字典,列表的每一项都是长度为 2 的序列。 还可以使用关键字实参(**kwargs)来调用这个函数,如下所示: 字典的基本操作与序列十分相似: 字典与序列的不同:

  • 方法 clear 删除所有的字典项(key-value)。
  • 复制,得到原字典的一个新副本。
  • 效果等同于调用 dict(d) 创建新字典。
  • copy() 执行的是浅复制,若字典的值是一个可变对象,那么复制以后,相同一个键将关联到同一个对象,修改该对象,将同时修改两个字典。
  • 模块 copy 中的函数 deepcopy 可执行深复制。
  • 方法 fromkeys 创建一个新字典,其中包含指定的键,且每个键对应的值都是 None,或者可以提供一个默认值。
  • 方法 get 为访问字典项提供了宽松的环境。通常,如果你试图访问字典中没有的项,将引发错误,而 get 直接返回 None,或者可设置默认返回值。
  • 当字典中不存在指定键时,setdefault(k, v) 添加一个指定键-值对;且返回指定键所关联的值。
  • 这三个方法返回值属于一种名为字典视图的特殊类型。字典视图可用于迭代。另外,还可确定其长度以及对其执行成员资格检查。
  • 这三个方法最大的特点是不可变,当你的接口试图对其他用户提供一个只读字典,而不希望他们修改的时候,这三个方法是很有用的;而且当原字典发生改变时,这些方法返回的对象也会跟着改变。
  • 方法 pop 可用于获取与指定键相关联的值,并将该键-值对从字典中删除。
  • popitem 随机删除一个键-值对,并返回一个二维的元组 (key, value),因为字典是无序的,所以其弹出的顺序也是不确定的。
  • 书上说,这个方法在大数据量时执行效率很高,但没有亲测。
  • 方法 update 使用一个字典中的项来更新另一个字典。