资讯专栏INFORMATION COLUMN

3-python 元组 字典 集合的操作

CKJOKER / 1857人阅读

摘要:元组本质是一种有序集合和相似元组是不可变的用创建其中类型可以不同如果一个元组中只有一个元素,在这个元素后面加一个逗号来消除歧义修改元组表面上看,的元素改变了,但实际上变得不是的元素,是的元素删除被直接删除数据类型转换字典字典中的必须唯一值必

元组 tuple

本质是一种有序集合

和list相似

元组是不可变的

用()创建

其中类型可以不同

如果一个元组中只有一个元素,在这个元素后面加一个逗号, 来消除歧义tuple5 = (100,)

修改元组

tuple13 = (1, [100, 200, 300, 400], 3)
print(tuple13)
tuple13[1][2] = 666
print(tuple13) # 表面上看,tuple的元素改变了,但实际上变得不是tuple的元素,是list的元素

删除

del tuple1 #被直接删除

数据类型转换

tuple(list) list(tuple)

字典

字典中的key必须唯一

key值必须是不可变的数据类型:字符串,元组,Number

list可变,不能作为key使用

value为任意数据类型,可以重复

字典的本质是一种无序集合

字典的访问

print(dic1.get("hmm"))
# get获取字典中的值,如果当前key值不存在,返回None,而常规访问会Error

删除 pop(key)

遍历

for key in dict1.keys()
for values in dict1.values()
for key, values in dict1.items()

更新 dict1.update(dict2) 将 dict2中的键值对 更新到 dict1中

dict与list相比:

dict:1、查找及插入速度块,不会随着key及value的增加而变慢
      2、需要占用的内存大,内存浪费多
list:1、查找及插入速度会随着数据的增加而变慢
      2、需要占用的内存小,内存浪费少
案例:词频统计
提供了下面4个方法,个中优劣,自行体会。
items = ["bobby", "bobby", "kate", "tom","tom","tom","tom"]
dict1 = {}

for item in items:
     if item not in dict1:
         dict1[item] = 0
     dict1[item] += 1
print(dict1)

for item in items:
    dict1.setdefault(item,0)
    dict1[item] += 1
print(dict1)

for item in items:
    dict1[item] = dict1.setdefault(item,0) + 1
print(dict1)


for item in items:
    try:
        dict1[item] += 1
    except:
        dict1[item] = 1
print(dict1)
set集合

与dict相比,set是一组存储key的集合,但不存储value

本质:一个无序的及元素不重复的集合

set1 = set([1,2,3,4])
set2 = set([1,2,3,4,2,2,2,3,3,1,4,5,6,2,1]) #重复会被过滤
print(set2)  # {1,2,3,4,5,6}
       
# tuple
set3 = set((1,2,3,2,1))
print(set3)
       
# dict
set4 = set({"a":1, "b":2, "c":3})
print(set4)  # 只保留字典的key值  # {"a","b","c"}
       
dic5 = {"a":1, "b":2, "c":3}
set5 = set(dic5.values())
print(set5)
       
# 数据类型不匹配
# set6 = set(100)
# print(set6)  # TypeError: "int" object is not iterable(迭代器)
# 迭代器就是一种集合数据类型

添加数据

add() #只添加不可变的数据类型 元组字符串数字
update(iter) # list,tuple,string,dict(只有key)

删除 remove()

set不支持下标访问

集合的操作

set10 = set([1,2,3,4,5])
set11 = set([4,5,6,7,8])
# 1、&  交集
set12 = set10 & set11
print(set12)
# 2、|   并集
set13 = set10 | set11
print(set13)
# 3、^   补集
set14 = set10 ^ set11
print(set14)

不同数据类型的装换

list-set
tuple->set
set->list
set->tuple
list->tuple
tuple->list

将list中的重复数据删除可以用set

list1 = [1,2,3,6,3,2,1,1,1,9]
set1 = set(list1)  # 过滤重复数据
list2 = list(set1)
print(list2)
枚举遍历

可以将下标及元素同时遍历

for i in enumerate(list1):
    print(i)
for index,data in enumerate(list1):
    print(index, data)

set1 = set([1,2,3]) # 让set也能有下标
for index,data in enumerate(set1):
    print(index, data)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41544.html

相关文章

  • python3学习笔记(2)----python数据类型

    摘要:的基本数据类型中的变量不需要声明。在里,只有一种整数类型,表示为长整型,没有中的。字符串的截取的语法格式如下变量头下标尾下标索引值以为开始值,为从末尾的开始位置。列表列表是中使用最频繁的数据类型。注意构造包含或个元素的元组的特殊语法规则。 1、python3的基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,...

    陆斌 评论0 收藏0
  • Python3基础数据类型

    摘要:列表列表是中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。注意构造包含或个元素的元组的特殊语法规则。基本功能是进行成员关系测试和删除重复元素。以下几个内置的函数可以执行数据类型之间的转换。 一、说明 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的类型是变量所指的内存中...

    Rindia 评论0 收藏0
  • Python数据类型

    摘要:字符串进阶原始字符串表示方式及使用如何格式化字符串中文字符串的使用原始字符串表示方式及使用防止转义字符输入过多而使代码阅读性下降注意原始字符串不得以结尾。列表中可以包含任何数据类型,也可包含另一个列表。 1.python的数据类型: 字符串 整数 浮点数 类型转换 字符串编码 列表、元组与字典 2.应用: 序列及其通用操作 相关逻辑运算 1.1字符串(Str) 1.Pytho...

    wua_wua2012 评论0 收藏0
  • Python入门-高级数据结构

    摘要:下面让我们一块来看下的中高级数据结构。到现在,我们学习了列表元组字典和集合种高级数据结构。 < 返回索引页 高级数据结构 列表与元组 什么是列表 列表的操作 什么是元组 元组的操作 字典与集合 字典的定义 字典的操作 集合的定义 集合的操作 序列 序列的通用操作 可变类型和不可变类型 深copy和浅copy 总结 练习 参考 高级数据结构 我们知道P...

    jayzou 评论0 收藏0
  • python数据结构比较

    摘要:列表列表中的每一个元素都是可变的,有序的,可以被查看索引的。字典中的数据必须以键值对的形式出现键不可重复,值可重复字典中键是不可变的,为不可变对象,不能进行修改而值是可以修改的,可以是任何对象。集合中每个元素都是无序的不重复的任意对象。 列表:list=[val1,val2] 1.列表中的每一个元素都是可变的,有序的,可以被查看索引的。 可变意味着可以对每个元素进行增删改查的操作,...

    wwolf 评论0 收藏0

发表评论

0条评论

CKJOKER

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<