#容器类型数据 : list tuple

# ###列表的特性:可获取,可修改,有序

# 声明一个空列表

listvar = []

print(listvar,type(listvar))

# (1)列表的获取

#          0  1     2    3    4         5

listvar = [5,False,2-4j,5.16,"张三","李四"]

#         -6   -5   -4    -3      -2       -1

res = listvar[4]

res = listvar[-1]

print(res)

# len 计算容器类型的长度 (元素的个数)

lengthvar = len(listvar)

print(res)

res = listvar[lengthvar-1] #listvar[5]

print(res)

# (2)列表的修改

listvar = [5,False,2-4j,5.16,"张三 ","李四]

listvar[-2] = "李一凡"

print(listvar)

listvar[1] = True

print(listvar)

# ###元组的特性:可获取,不可修改,有序

#区分是否是元组的标志性符号是逗号,声明一个空元组可以用()

tuplevar = ()

print(tuplevar,type(tuplevar))

tuplevar = (1,)

tuplevar = 1,2,3

print(tuplevar,type(tuplevar))

# 元组的获取

tuplevar = ("张三","李四","王五","李二","王大")

res = tuplevar[1]

print(res)

# error 元组不能够修改

'''

tuplevar[-1] = 123

print(tuplevar)

'''

# ###字符串的特性:可获取,不可修改,有序

strvar = "我爱吃大鸡腿"

res = strvar[-1]

print(res)

# 字符串不能够修改

'''

strvar[-1] = '腿'

print(strvar)

'''

# ###容器类型数据 set dict

# ###集合特征: 自动去重,无序

# 集合的用途,用于做交集,差集,并集,补给(做交叉并补的)

# 1.集合无序

setvar = {"刘德华","张学友","郭富城","黎明"}

# print(setvar)

# (1) 无法通过索引获取值

# print(setvar[0])

# (2) 无法通过索引修改值

# setvar[1] = "123"

# 2.集合自动去重

setvar = {"张三","李四","王五","李二"}

print(setvar,type(setvar))

# 3.定义一个空集合

setvar = {}

print(setvar,type(setvar))  # 空字典,不是空集合

setvar = set()

print(setvar,type(setvar))

# setvar = {[1,2,3]}

# setvar = {{"a":1}}

# setvar = {{1,2,3}}

# setvar = {(1,2,3),"333",(4,5,6)}

setvar = {(1,2,(4,5,6)),"333",(4,5,6)}

print(setvar)

# ###字典特征:键值对存储的数据,有序

'''键和值之间用冒号隔开,键值对之间用逗号隔开'''

'''

哈希算法

把不可变的任意长度值计算成固定长度的唯一值

这个值可正可负,可大可小,通过算出的数,可以获取到对应的值,形成一种映射关系

把这个算法叫做哈希算法,把这个值叫做哈希值

对于字典来讲,里面的键底层就是通过哈希算法计算出来的,

哈希算法不能保证插入内存的数据和字典的字面顺序一致,所以本质上,字典是无序的

3.6版本,把字典的字面顺序记录下来,在从内存拿去数据的时候,根据字面顺序重新排序,所以看起来像有序

3.6版本之前都是无序的,3.6版本经过算法优化变成有序,但本质上无序

可哈希的数据  (不可变的数据):Number(int float bool complex) str tuple

不可哈希的数据 (可变的数据): list set dict

'''

# 语法: dictvar = {"a":1,"b":2,"c":3}

dictvar = {"top":"程咬金","middle":"安其拉","bottom":"鲁班七号",'jungle':"达摩","support":"蔡文姬"}

print(dictvar)

# 获取字典当中的值

res = dictvar['bottom']

res = dictvar['jungle']

print(res)

# 修改字典当中的值

dictvar['support'] = "庄周"

print(dictvar)

# 字典键必须可哈希

'''在命名字典键的时候,推荐使用字符串,按照变量命名的方式来做'''

dictvar = {1:1,(1,2,3):3,False:4,3.14:999,4-2j:888,"李四":"大傻逼"}

print(dictvar)

print({"周大幅","周日","123"})

python小白——进阶之路——day2天-———容器类型数据(list,set ,tuple,dict,str)的更多相关文章

  1. python小白——进阶之路——day3天-———容器类型数据+Number类型强制类型转换

    -->Number 部分 int :     整型   浮点型 布尔类型  纯数字字符串 float:    整型   浮点型 布尔类型  纯数字字符串 complex:  整型   浮点型 布 ...

  2. python小白——进阶之路——day2天-———数据类型和Number类型和str字符串

    ### -python的六大标准数据类型(1)Number 数字类型(int float bool complex)(2)String 字符串类型(3)List 列表类型(4)Tuple 元组类型(5 ...

  3. python小白——进阶之路——day2天-———变量的缓存机制+自动类型转换

    # ###同一文件,变量的缓存机制 ''' -->Number 部分 1.对于整型而言,-5~正无穷范围内的相同值 id一致 2.对于浮点数而言,非负数范围内的相同值 id一致 3.布尔值而言, ...

  4. python小白——进阶之路——day3天-———运算符

    (1)算数运算符:  + - * / // % ** (2)比较运算符:  > < >= <= == != (3)赋值运算符:  = += -= *= /= //= %= ** ...

  5. 关于容器类型数据的强转一共:str() list() set() tuple() dict() 都可以转换成对应的数据类型 /Number 数据类型的强转一共: int() bool() flaot() complex() 都可以转换成对应的数据类型

    # ###强制转换成字典类型 # 多级容器数据:该类型是容器数据,并且里面的元素还是容器类型数据 # ###二级容器 # 二级列表 listvar = [1,3,4,5,[6,7,8,9]] res ...

  6. python小白——进阶之路——day1天---认识python和变量、注释

    ###-python的认知 89年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido) (1)版本: python2.x原码不规范,重复较多 python3x:原码 ...

  7. python小白——进阶之路——day4天-———流程控制while if循环

    # ### 代码块: 以冒号作为开始,用缩进来划分作用域,这个整体叫做代码块 if 5 == 5: print(1) print(2) # 注意点: 要么全部使用4个空格,要么全部使用1个缩进 ,这样 ...

  8. python 容器类型数据 (str list tuple set dict)

    # ###容器类型数据(str list tuple set dict) var1 = "今天心情非常美丽" var2 = [1,2,3,4] var3 = ("黄将用& ...

  9. 列表 list 容器类型数据(str字符串, list列表, tuple元组, set集合, dict字典)--->元组 tuple-->字符串 str

    # ### 列表 list 容器类型数据(str字符串, list列表, tuple元组, set集合, dict字典) # (1)定义一个列表 listvar = [] print(listvar, ...

随机推荐

  1. Python迭代和解析(5):搞懂生成器和yield机制

    解析.迭代和生成系列文章:https://www.cnblogs.com/f-ck-need-u/p/9832640.html 何为生成器 生成器的wiki页:https://en.wikipedia ...

  2. 如何正确使用Java序列化?

    前言 什么是序列化:将对象编码成一个字节流,这样一来就可以在通信中传递对象了.比如在一台虚拟机中被传递到另一台虚拟机中,或者字节流存储到磁盘上. “关于Java的序列化,无非就是简单的实现Serial ...

  3. Java开发笔记(四十六)类的构造方法

    前面介绍了如何定义一个简单的类,以及它的成员属性和成员方法,从示例代码可以看到,不管是OrangeSimple还是OrangeMember,都要先利用关键字new创建一个实例,然后才能通过实例名称访问 ...

  4. Java开发笔记(五十八)简单接口及其实现

    前面介绍了抽象方法及抽象类的用法,看似解决了不确定行为的方法定义,既然叫唤动作允许声明为抽象方法,那么飞翔.游泳也能声明为抽象方法,并且鸡类涵盖的物种不够多,最好把这些行为动作扩展到鸟类这个群体,于是 ...

  5. Android开发——Notification通知的使用及NotificationCopat.Builder常用设置API

    想要看全部设置的请看这一篇 [转]NotificationCopat.Builder全部设置 常用设置: 设置属性 说明 setAutoCancel(boolean autocancel) 设置点击信 ...

  6. MySQL优化COUNT()查询

    COUNT()聚合函数,以及如何优化使用了该函数的查询,很可能是最容易被人们误解的知识点之一 COUNT()的作用 COUNT()是一个特殊的函数,有两种非常不同的作用: 统计某个列值的数量 统计行数 ...

  7. bitset用法小结

    bitset bitset大概就是类似于bool数组一样的东西 但是它的每个位置只占1bit(特别特别小) bitset的原理大概是将很多数压成一个,从而节省空间和时间(暴力出奇迹) 一般来说bits ...

  8. 网络最大流算法—EK算法

    前言 EK算法是求网络最大流的最基础的算法,也是比较好理解的一种算法,利用它可以解决绝大多数最大流问题. 但是受到时间复杂度的限制,这种算法常常有TLE的风险 思想 还记得我们在介绍最大流的时候提到的 ...

  9. html标签种类很多,为什么不都用div?

    why not divs? 所有html页面标签都可以用div解决,为什么还会存在各种不同的标签呢? 代码是写给机器阅读的,初始化标签更利于快速编程,毕竟很多标签有了自定义属性,无需编码控制,可维护性 ...

  10. Dynamics 365使用代码发送邮件给指定邮箱地址

    摘要: 微软动态CRM专家罗勇 ,回复303或者20190213可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 当然,首先要 ...