本文目录一览:
Python中创建字典的几种方法总结
- 传统的文字表达式:
d = {'name': 'Allen', 'age': 21, 'gender': 'male'} d
如果你可以事先拼出整个字典,这种方式是很方便的。{'age': 21, 'name': 'Allen', 'gender': 'male'}
- 动态分配键值:
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
- 字典键值表
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
- 字典键值元组表
e = dict([('name', 'Allen'), ('age', 21), ('gender', 'male')]) e
如果你需要在程序运行时把键和值逐步建成序列,那么这种方式比较有用。{'age': 21, 'name': 'Allen', 'gender': 'male'}
- 所有键的值都相同或者赋予初始值:
f = dict.fromkeys(['height', 'weight'], 'normal') f
{'weight': 'normal', 'height': 'normal'}
python 字典创建问题?
python创建文件与文件夹
- 文件的创建:
一般创建.txt
文件使用函数open(file, 'mode')
:file
为文件地址,若不存在则新建,若不再本目录下,可以写绝对路径。mode
有以下几种方式:r
只读rb
二进制只读w
写入且原有内容覆盖a
在文件末尾追加 打开后文件需要.close()
关闭。
- 文件夹的创建:
使用os.mkdir(ad)
方式建立,ad
为新建文件夹名称的绝对路径。
python字典中如何创建字典
python---创建字典的方式
- 用
{}
创建字典
输出:x = {"a": "1", "b": "2"} print(x)
{'a': '1', 'b': '2'}
- 用内置函数
dict()
(1) 入参为类似a="1"
的键值对
输出:x = dict(a="1", b="2") print(x)
(2) 入参为一个元组,元组内部是一系列包含两个值的元组,例如{'a': '1', 'b': '2'}
(("a", "1"), ("b", "2"))
输出:x = dict((("a", "1"), ("b", "2"))) print(x)
(3) 入参为一个元组,元组内部是一系列包含两个值的列表,例如{'a': '1', 'b': '2'}
(["a", "1"], ["b", "2"])
输出:x = dict((["a", "1"], ["b", "2"])) print(x)
(4) 入参为一个列表,列表内部是一系列包含两个值的元组,例如{'a': '1', 'b': '2'}
[("a", "1"), ("b", "2")]
输出:x = dict([("a", "1"), ("b", "2")]) print(x)
(5) 入参为一个列表,列表内部是一系列包含两个值的列表,例如{'a': '1', 'b': '2'}
[["a", "1"], ["b", "2"]]
输出:x = dict([["a", "1"], ["b", "2"]]) print(x)
注意:{'a': '1', 'b': '2'}
- 对于
a="1"
的方式初始化字典,字典的 key 只能为字符串,并且字符串不用加引号。 - 对于
dict
内置函数初始化,当入参是一个元组时,例如 1)、2),元组内部的两元素元组或者列表至少为两个,否则会出错。
- 对于
- 使用
fromkeys
方法创建字典
输出:dict.fromkeys(("a", "b"), 1) print(x)
入参的第一个参数是一个列表或者元组,里边的值为 key,第二个参数是所有 key 的 value 值。{'a': 1, 'b': 1}
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
使用一个字典中的项来更新另一个字典。