Python——zip的用法_list-dict复合字典
zip()函数的用法——list-dict复合字典
zip()函数,返回N个元组的迭代器,其中每个元组包含了N个序列里对应的元素。
zip()函数,接受多个序列,然后将每个序列对应位置的元素组织在一起组成一个新的元组,最后返回由这些元组组成的列表。它的长度有参数序列中最短的长度决定。举个栗子:
>>>zip([1,2,3],('a','b','c'))
>>>[(1,'a'),(2,'b'),(3,'c')]
# 定义一个list-dict的复合数组存放图像对应的标注员name、标注日期、相机类型、图像名称
"""
例如:
imgname_list = ['id1','id2','id3','id4','id5']
userlist = ['name1','name2','name3','name4','name5']
placelist = ['place1','place2','place3','place4','place5']
"""
xml_infos_zipped = zip(xml_paths_list, label_QC_staffs_list, label_QC_datetimes_list, xml_abspaths_list)
# 定义list-dict的复合字典,list中每个元素为一个dict,dict的key包括:xml_path,abel_QC_staff,label_QC_datetime,xml_abspath
xml_QCbaseinfo_compound_list = [dict(xml_path=xml_paths_i,label_QC_staff=label_QC_staffs_i,
label_QC_datetime=label_QC_datetimes_i,xml_abspath=xml_abspath_i)
for xml_paths_i ,label_QC_staffs_i,label_QC_datetimes_i,xml_abspath_i in list(xml_infos_zipped)]
# 将list-dict的复合字典转化为DataFrame格式
df_xml_QCtables = pd.DataFrame(xml_QCbaseinfo_compound_list)
>>>
[{
'xml_path': 'f9183.xml',
'label_QC_staff': 'lin',
'label_QC_datetime': '2022.08.09',
'xml_abspath': '/xml质控脚本/f9183.xml'},
{
'xml_path': 'e186b.xml',
'label_QC_staff': 'lin',
'label_QC_datetime': '2022.08.09',
'xml_abspath': '/xml质控脚本/e186b.xml'}]
python dict.get()函数用法
作用
Python中的字典(Dictionary)是以键值对的形式存储数据的,get()方法可以返回指定键的值,如果该键不存在的话,返回默认值。
语法
dict.get(key, default=None)
参数
key:需要查找的键。 default:如果查找的键不存在的话,返回default的值。默认为None。
举例
dict = {
"age":18,"weight":65}
print(dict.get("age"))
# 输出结果为:18
print(dict.get("height"))
# 由于字典dict中没有height这个键,返回的是默认值None。
print(dict.get("height",0))
# 将默认值改为0,输出结果为0
dict.get(key)和dict[key]的区别
dict.get(key)和dict[key]在key值存在的情况下,都能得到对应的键值。但是当使用dict[key]时,key必须要存在,否则会报错。但是dict.get[key]中的key可以不存在,因为get方法有一个默认的参数None,当key不存在的时候,返回None。