首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python入门:7.Pythond的内置容器

字典(dict):存储键值对,可变,散列,键不能重复且不可变。 集合(set):存储键,可变,无序且不重复。 二、内置容器的详细解析 1....字典(Dictionary,dict) 字典是一种无序的键值对(key-value pair)容器。...常用方法表格: 方法名 描述 len(d) 返回字典中键值对的数量 d[k] 返回键 k 对应的值 d.clear() 清空字典中的所有键值对 d.get(k[, default]) 返回键 k 对应的值...,如果不存在返回默认值 d.keys() 返回字典的所有键 d.values() 返回字典的所有值 d.items() 返回字典的所有键值对 d.pop(k) 删除并返回键 k 对应的值 示例代码:...# 列表转集合 unique_items = set([1, 2, 2, 3]) # 集合转列表 items = list(unique_items) # 列表转字典 pairs = [('a',

8410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手撕Python之散列类型

    那么这里就涉及到了字典 字典的定义 定义:{‘键’:'值',‘键’:'值'} 1.字典的数据,都是以键值对的方式----键和值都要成对出现 2.键值对之间用逗号隔开 字典的定义: d={'name':'...,那么前面的键值对会被后面的键值对给替换掉 ''' 因为我们之前就说明了 在字典中对数值的访问我们只能通过键 那么现在有两个一样的键,那么我们是不知道访问谁的 所以在字典中键必须是唯一的 如果同时出现一样的键...,那么前面的键值对会被后面键值对提坏 如果确实要定义两个名字的话,我们可以在name后面加上数字进行区分 ''' 如果在字典里面出现重复的键,那么前面的键值对会被后面的键值对给替换掉 最好的解决方法就是在键后面加上数字进行区分...这个键是之前没出现过的 #所以编译器会将这个键和其对应的值会作为键值对添加到字典中 print(d.get('name')) #小红 #如果不存在我们想寻找的键值对的话,那么编译器会通过这个函数将这个键值对添加到字典之中...那么所以说i种存在两个值,就是键和键指向的值 那么我们就利用元组的拆包的操作 将键值对这两个值存在我们创建的两个变量中 a就是存储键 b就是存储值了 那么我们利用循环,i遍历整个列表我们将整个列表中的元素都进行打印了

    8310

    强大易用的Excel转Json工具「建议收藏」

    工具不复杂,使用简单,但能满足几乎所有excel转json的要求了,包括多层嵌套,每一层定制为列表或者字典的输出格式,复杂单元格的定制。...为真则直接跳过空值项 "ignoreEmpty": true, #放置源文件的目录 "srcFolder": "....则该列不会被读取 主键以*开头,没有主键则默认除映射主表列以外的第一列为主键列 数据类型会自动识别,也可在列名后面可以跟修饰符进行限定,格式为 键名#修饰符 修饰符可以为: int : 如果是数值类型则强制转换为整形...键名#修饰符#小数位数 str : 字符串 bool : 0或false输出false,其他输出true date : 输出日期格式 obj : 将数据拆分为多个子项来替代当前项,每一项以’|‘分隔,键值对以...{} : 以字典形式输出内容,字典项以’|‘分隔,键值对以’:’分隔。例: key1:value1,key2:value2 。

    6.9K20

    爬虫工程师面试题

    5、如果custname字符串的编码格式为uft-8,如何将custname的内容转化为gb18030的字符串? 先将custname编码格式转换为unicode,在转换为gb18030。...比如需要将utf-8转换为gbk,那么就需要先转换为unicode(encode),再转为gbk(decode)。 6、请写出一段python代码实现删除list中的重复元素。...其中,*args 是用来发送一个非键值对的可变数量的参数列表给一个函数;​kwargs 允许你将不定长度的键值对, 作为参数传递给一个函数。...第一行是表示函数可以接受不定数量的非键值对的参数,用来传参使用的。第八行是用来解压列表 [‘hello’, ‘2019’]的每一项数据的,用来解压参数的。...输出结果: 1 param1 123 2 name jack 3 age 26 总结:*args和**kwargs都是用于函数中传递参数的,*args传递的是非键值对的参数,**kwargs传递的是带键值对的参数

    9310

    python爬虫常见面试题(一)

    5、如果custname字符串的编码格式为uft-8,如何将custname的内容转化为gb18030的字符串? 先将custname编码格式转换为unicode,在转换为gb18030。...比如需要将utf-8转换为gbk,那么就需要先转换为unicode(decode),再转为gbk(encode)。 ? 6、请写出一段python代码实现删除list中的重复元素。...其中,*args 是用来发送一个非键值对的可变数量的参数列表给一个函数;**kwargs 允许你将不定长度的键值对, 作为参数传递给一个函数。...第一行是表示函数可以接受不定数量的非键值对的参数,用来传参使用的。第八行是用来解压列表 ['hello', '2019']的每一项数据的,用来解压参数的。...输出结果: 1 param1 123 2 name jack 3 age 26 总结:*args和**kwargs都是用于函数中传递参数的,*args传递的是非键值对的参数,**kwargs传递的是带键值对的参数

    3.8K20

    OC史上最实用的runtime总结,面试、工作你看我就足够了

    案例3:利用runtime 获取所有属性来进行字典转模型 以往我们都是利用KVC进行字典转模型,但是它还是有一定的局限性,例如:模型属性和键值对对应不上会crash(虽然可以重写setValue:forUndefinedKey...不对应有两种,一种是字典的键值大于模型属性数量,这时候我们不需要任何处理,因为runtime是先遍历模型所有属性,再去字典中根据属性名找对应值进行赋值,多余的键值对也当然不会去看了;另外一种是模型属性数量大于字典的键值对...id value = dict[key]; // 如果模型属性数量大于字典键值对数理,模型属性会被赋值为nil而报错 if (value == nil) continue; // 将字典中的值设置到模型上...[type hasPrefix:@"NS"]) { // 将对象名转换为对象的类型,将新的对象字典转模型(递归) Class class = NSClassFromString(type); value...[type hasPrefix:@"NS"]) { // 将对象名转换为对象的类型,将新的对象字典转模型(递归) Class class = NSClassFromString(type); value

    1.5K20

    OC最实用的runtime总结,面试、工作你看我就足够了!前言什么是runtime?如何应用运行时?

    案例3:利用runtime 获取所有属性来进行字典转模型 以往我们都是利用KVC进行字典转模型,但是它还是有一定的局限性,例如:模型属性和键值对对应不上会crash(虽然可以重写setValue:forUndefinedKey...不对应有两种,一种是字典的键值大于模型属性数量,这时候我们不需要任何处理,因为runtime是先遍历模型所有属性,再去字典中根据属性名找对应值进行赋值,多余的键值对也当然不会去看了;另外一种是模型属性数量大于字典的键值对...JSON数据 这时候我们就需要利用runtime的ivar_getTypeEncoding 方法获取模型对象类型,对该模型对象类型再进行字典转模型,也就是进行递归,需要注意的是我们要排除系统的对象类型,...[type hasPrefix:@"NS"]) { // 将对象名转换为对象的类型,将新的对象字典转模型(递归) Class...[type hasPrefix:@"NS"]) { // 将对象名转换为对象的类型,将新的对象字典转模型(递归) Class

    1.3K120

    Python 算法基础篇:哈希表与散列函数

    Python 算法基础篇:哈希表与散列函数 引用 哈希表是一种高效的数据结构,常用于存储键值对并支持快速的插入、查找和删除操作。散列函数是哈希表的关键组成部分,用于将键映射到哈希表的索引位置。...哈希表的概念 哈希表是一种数据结构,它将键值对存储在一个数组中,并通过散列函数将键映射到数组的索引位置。这样可以快速地插入、查找和删除键值对,使得哈希表成为一种高效的数据结构。...哈希表的实现 Python 中没有直接的哈希表数据结构,但我们可以使用字典( dictionary )来实现哈希表的功能。字典是 Python 中的一种内置数据结构,用于存储键值对。...首先,我们创建了一个存储学生姓名和成绩的字典。通过使用键来查找元素,我们可以快速获取学生的成绩。然后,我们可以插入新的键值对和删除不需要的键值对。最后,打印字典的内容。 5....它使用一个链表来存储哈希值相同的键值对。当发生冲突时,新的键值对会被添加到链表中,这样可以保证所有的键值对都能被正确地存储在哈希表中。 b ) 开放地址法 开放地址法是另一种解决冲突的方法。

    42000

    Redis 字典

    -4, 4)); // 将后两位字符转换为整数 return hashValue; } 在这里散列函数的作用就是讲key值映射成数组的索引下标。...属性是针对不同类型的键值对,为创建多态字典而设置的。...,而v属性则保存着键值对中的值,其中键值(v属性)可以是一个指针,或uint64_t整数,或int64_t整数。...操作 时间复杂度 创建一个新字典 将给定的键值对添加到字典内 O(1) 将给定的键值对添加到字典内,如果键存在则替换之 O(1) 返回给定键的值 O(1) 从字典中随机返回一个键值对 O...(1) 从字典中删除给定键所对应的键值对 O(1) 释放给定字典以及字典中包含的键值对 O(N),N为字典包含的键值对的数量 本文重点 字典在redis中广泛应用,包括数据库和hash数据结构

    1.7K84

    Python学习笔记(四)—列表(list)、元组(tuple)和字典(dictionary)、集合(set)

    补充:tuple(list)函数:将list转换为tuple,list(tuple)函数:将tuple转换为list:  # list转tuple: >>> l = [1, 2, 3] >>> tuple...(l) (1, 2, 3) # tuple转list: >>> t = ('a', 'b', 'c') >>> list(t) ['a', 'b', 'c']  二、字典(dictionary)和集合(...字典的每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中 ,格式如下所示:  格式:d = {key1 : value1, key2 : value2...} 例子:d = {1:"a",  2:"b", 3:"c"}  字典的特点  1、键必须是唯一的,不会重复,但值则不必。 ...2、值可以取任何数据类型,如字符串,数字或元组,但不能为列表,但键必须是不可变的。

    3.9K00

    【python篇】——python基础语法一篇就能明白,快速理解

    散列类型的操作 散列类型(也称为哈希类型)主要包括 字典(dict) 和 集合(set)。它们的操作方式与序列类型不同,主要用于基于键值对(dict)或集合中独特元素(set)的快速查找。...字典(dict) 字典是 Python 中的一种哈希映射类型,用于存储键值对,键必须是可散列的(通常是不可变类型,如字符串、数字、元组),值可以是任意类型。...字典的常见操作: 增(添加键值对) 可以通过使用键添加新值或修改现有的键值对。...popitem():删除并返回最后插入的键值对(字典是无序的,Python 3.7+ 中有顺序)。 clear():清空字典。 del:使用 del 关键字删除键值对或整个字典。...keys():返回字典中所有的键。 values():返回字典中所有的值。 items():返回字典中的所有键值对。 in:用于检查键是否存在于字典中。

    11910

    Python的字典与散列表

    散列表是一种数据结构,它存储的是键值对(key-value)。 在散列表中,每个键值对的键必须是可散列的,这是因为存储的键值对通过使用其键的散列值进行索引。...如果将前面提到过的环境变量PYTHONHASHSEED的值设置为46 ,就会得到下面的输出结果。有两个空容器,另外两个容器中分别存储了两个键值对数据。...在Python的基本知识中,我们知道字典是“键-值对”的集合 ,因此要定义字典,必须提供一个用逗号括起来的大括号内的键-值对列表,如以下示例所示: >>> chess_players = { ......()两个方法,可以分别得到字典的键和值所生成的对象(在参考文献[3]中,对这类对象有特别说明),也是可迭代的。...,可以增加键值对。

    4.7K10

    介绍下 Set、Map、WeakSet 和 WeakMap 的区别?

    向 Set 加入值的时候,不会发生类型转换,所以5和"5"是两个不同的值。...字典(Map) 集合 与 字典 的区别: 共同点:集合、字典 可以储存不重复的值 不同点:集合 是以 [value, value]的形式储存元素,字典 是以 [key, value] 的形式储存 const...如果 Map 的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map 将其视为一个键,比如0和-0就是一个键,布尔值true和字符串true则是两个不同的键。...Object 因为 Object 的键名都为字符串,而Map 的键名为对象,所以转换的时候会把非字符串键名转换为字符串键名。...WeakMap WeakMap 对象是一组键值对的集合,其中的键是弱引用对象,而值可以是任意。 注意,WeakMap 弱引用的只是键名,而不是键值。键值依然是正常引用。

    1.8K20

    Redis选13亿个Key,4个field还是1亿个Key,13亿*4个field?

    什么是哈希 哈希hash又称为散列、杂凑等,是将任意长度的输入通过散列算法变换为固定长度的输出,最终输出也就是哈希值。这种转换是一种压缩映射。...Redis中的字典 在Redis中,hash哈希被称为字典(dictionary),Redis的字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表节点,而每个哈希表节点保存了字典中的一个键值对。...Redis中的哈希采用了典型的挂链解决冲突的方式,当有多个key-value键值对的键名key映射值相同时,系统会将这些键值value以单链表的形式保存,同时为了控制哈希表占用内存大小,Redis采用了双哈希表...Redis中一个哈希存储一条数据,一个字段field则存储一条数据中的一个属性,字段值value是属性对应的值。每个哈希hash可存储2^32-1个键值对,约40多亿个。...Redis中的哈希散列类型与Java中的HashMap相似,都是一组键值对的集合,并且支持单独对其中一个键进行增删改查操作。 ? 为什么哈希更适合存储对象呢? ?

    3.7K21

    Python的八种数据类型

    # 字典本质也是一个数组,但其索引是键经过散列函数处理后得到的散列值,散列函数的目的是使键均匀地分布在散列表中, # 并且可以在内存中以O(1)的时间复杂度进行寻址,从而实现快速查找和修改。...在字典的散列表当中,**每个键值对都占用一个表元,每个表元都有两个部分,一个是对键的引用,另一个是对值的引用。...# **散列表中散列函数的设计困难在于将数据均匀分布在散列表中,从而尽量减少散列碰撞和冲突。 # # 字典如何添加和查询?...**查询:**使用散列函数将key转换为数组的下标,并定位到数组对应位置获取value。 # # 字典为什么是无序的?...# 键值的哈希碰撞,hash(key1) == hash(key2)时,向字典里连续添加的这个两个键的顺序是不可以控制的,也是无法做到连续的,后来的键会按算法调整到其它位置。

    3.3K30
    领券