文章目录

    • 列表(list:[1,2,3])
    • 元组(tuple:(1,2,3))
    • 字典(dict:{key1:1, key2:2, key3:3})
    • 集合(set:{1,2,3})
    • 字符串(str)
    • 条件循环结构

 


几种常用的数据类型显示方式如下图:
Python基础数据结构_编程环境

列表(list:[1,2,3])

列表本身是动态的数据结构,每次会提前申请一部分空间,直到用完以后再重新申请,而不是每次用多少申请多少,类似与C#中的StringBuilder

适用于数据或数量是可变的场景
Python基础数据结构_编程环境_02

元组(tuple:(1,2,3))

元组本身是静态结构,每次定义后就不可再变,每次变化相当于重新申请一个新的元组,特性类似于C#中的string。

适用于存储的数据和变量不变的场景。

字典(dict:{key1:1, key2:2, key3:3})

字典本身是一个键值对结构,可以动态申请,Key的存储是基于hash函数,因此等值查找的时间复杂度可以到O(1)。
Python基础数据结构_个人杂谈_03

集合(set:{1,2,3})

类似字典也是基于hash函数,不过只是一个集合,而没有键值对,集合是不能有重复值的,因此可以用于去重(sql distinct),这个的效率比列表高不少,下面例子可以查看到对比

Python基础数据结构_编程环境_04

字符串(str)

字符串跟C#里的string类似,有几个特点或区别

  1. 增加了三引号,即可以使用单引号,双引号和三引号
  2. 增加了切片操作,不过,一样可以索引读取,一样内容不可变
  3. +=操作做了优化,并非每次都重新省去空间,也可能是直接对将操作者后面增加buff(下面例子对比用时)
  4. 格式化输出使用.format方式,当然也可以直接用字符串拼接,只是格式化更易读

Python基础数据结构_个人杂谈_05

条件循环结构

# for + if
expression1 if condition else expression2 for item in iterable

# 等价于下面写法

for item in iterable:
    if condition:
        expression1
    else:
        expression2
# 仅IF
expression for item in iterable if condition

# 等价于下面写法

for item in iterable:
    if condition:
        expression
# 多个循环
expression1 if condition else expression2 for item1 in iterable1 for item2 in iterable2

# 等价于下面写法

for item1 in iterable1:
	for item2 in iterable2:
	    if condition:
	        expression1
	    else:
	        expression2

Python基础数据结构_个人杂谈_06