03 python 数据结构

目录

一、列表 list

1、创建列表

2、获取列表元素

3、切片(从列表获取多个元素)

4、in 和 not in 判断列表中是否包含某元素  

5、修改列表的元素

6、列表方法

6-1)len()

6-2)max() 

6-3)min()

6-4)sorted()

6-5)join()

6-6)append()

二、元组 tup

1、创建元组

2、 获取元组元素

3、切片 in 和 not in

4、元组解包

5、元组方法

三、集合 set

1、创建集合

2、使用方法

四、字典 dict

1、创建字典

2、获取字典元素

3、修改字典

4、字典的方法

4-1)clear()

4-2)get()

4-3)keys()

4-4)values()

五、复杂数据结构


一、列表 list

python 的list 和java 的list 类似,都是有序、可变、元素可重复的集合。不同点在与python 列表支持添加不同类型的元素,python 支持负索引获取元素的方式。

1、创建列表

list_1 = [1, 2, 3, 4, 5]
list_2 = ["11", 1, 3.4, True]

 

2、获取列表元素

#获取list_1的第一个元素
print(list_1[0])
#获取list_1的第二个元素
print(list_1[1])
#获取list_2的倒数第一个元素
print(list_2[-1])
#获取list_2的倒数第二个元素
print(list_2[-2])

3、切片(从列表获取多个元素)

list_1 = [1, 2, 3, 4, 5]

#获取第二个元素()到第四个元素(不含)
print(list_1[1:3])
#获取第一个元素到第四个元素(不含)
print(list_1[:3])
#获取第二个元素到最后一个元素
print(list_1[1:])

4、in 和 not in 判断列表中是否包含某元素  

list_1 = [1, 2, 3, 4, 5, "name", "my"]

#判断 1 是否在 list_1 中
print(1 in list_1)
#判断 name 是否在 list_1 中
print("name" in list_1)
#判断 2 不在 list_1 中
print(2 not in list_1)

5、修改列表的元素

list_1 = [1, 2, 3, 4, 5, "name", "my"]

#修改 list_1 的第一个元素为"one"
list_1[0] = "one"
print(list_1)
#打印:['one', 2, 3, 4, 5, 'name', 'my']

6、列表方法

6-1)len()

返回列表中的元素数量

6-2)max() 

返回列表中的最大元素。最大元素的判断依据是列表中的对象类型。数字列表中的最大元素是最大的数字。字符串列表中的最大元素是按照字母顺序排序时排在最后一位的元素。因为 max() 函数的定义依据是大于比较运算符。如果列表包含不同的无法比较类型的元素,则 max() 的结果是 undefined。

6-3)min()

返回列表中的最小元素。它是 max() 函数的对立面,返回列表中的最小元素。

6-4)sorted()

返回一个从最小到最大排序的列表副本,并使原始列表保持不变。

6-5)join()

Join 是一个字符串方法,将字符串列表作为参数,并返回一个由列表元素组成并由分隔符字符串分隔的字符串。

6-6)append()

将元素添加到列表末尾

list_1 = [10, 2, 4, 6, 1, 3, 5]

#len方法,打印:7
print(len(list_1))
#max方法,打印:10
print(max(list_1))
#min方法,打印:1
print(min(list_1))
#sorted方法,打印:[1, 2, 3, 4, 5, 6, 10]
print(sorted(list_1))

list_2 = ["a", "b", "c", "f"]
#join方法,打印:a-b-c-f
print("-".join(list_2))
#append方法
list_2.append("e")
#打印:['a', 'b', 'c', 'f', 'e']
print(list_2)

二、元组 tup

元组是一种有序、不可变、元素可重复的数据结构。那什么是不可变呢,就是元组不能删除,添加,修改元素,不能对元组就行排序等等.....

1、创建元组

#方法一、使用小括号将元素包起来
tup_1 = (10, 2, 4, 6, 1, 3, 5)
#方法二、创建元组的小括号不是必须的,可以省略
tup_2 = 52, 40, 100

2、 获取元组元素

#获取tup_1的第一个元素
print(tup_1[0])
#获取tup_1的第二个元素
print(tup_1[1])
#获取tup_1的倒数第一个元素
print(tup_1[-1])
#获取tup_1的倒数第二个元素
print(tup_1[-2])

3、切片 in 和 not in

列表的切片和in, not in 判断同样使用与元组

4、元组解包

我们根据元组tup_2 的内容为三个变量赋了值。这叫做元组解包

tup_2 = 52, 40, 100

length, width, height = tup_2
#打印:52
print(length)
#打印:40
print(width)
#打印:100
print(height)

5、元组方法

列表的len()、max()、min()、sorted()、join() 等部分读的方法同样也适用于元组,但是append()方法不适用与元组

三、集合 set

集合是无序、可变、不可重复的数据数据结构。

1、创建集合

#方式一、使用大括号创建
set_1 = {1, 1, 2, 3}
#打印:{1, 2, 3} ,自动过滤 重复的元素
print(set_1)
#方式二、使用set方法
list_1 = [1, 2, 3, 1]
set_2 = set(list_1)
#打印:{1, 2, 3}
print(set_2)

2、使用方法

fruit = {"apple", "banana", "orange", "grapefruit"}  # 定义一个集合

print("watermelon" in fruit)  # 检查元素是否存在

fruit.add("watermelon")  # 添加一个元素
print(fruit)
print(fruit.pop())  #移除一个随机元素
print(fruit)

输出结果为:

False
{'grapefruit', 'orange', 'watermelon', 'banana', 'apple'}
grapefruit
{'orange', 'watermelon', 'banana', 'apple'}

你可以对集合执行的其他操作包括可以对数学集合执行的操作。可以对集合轻松地执行 union、intersection 和 difference 等方法,并且与其他容器相比,速度快了很多。

四、字典 dict

字典是可变数据类型,其中存储的是唯一键到值的映射。

1、创建字典

dict_1 = {"hydrogen": 1, "helium": 2, "carbon": 6}

2、获取字典元素

#用方括号获取元素,如果key不存在会报错
print(dict_1["hydrogen"])
#get方法获取如果key不存在返回None
print(dict_1.get("lucy"))

3、修改字典

dict_1["hydrogen"] = 4  #修改元素
dict_1["lucy":5]        #增加元素
del dict_1["helium"]    #删除元素

4、字典的方法

4-1)clear()

清空字典

4-2)get()

根据key获取元素

4-3)keys()

返回字典里所有的key

4-4)values()

返回字段里所有的value

dict_1.clear()
dict_1.get("hydrogen")
dict_1.keys()
dict_1.values()

更多字典的方法请参考:https://www.runoob.com/python/python-dictionary.html

五、复杂数据结构

我们可以在其他容器中包含容器,以创建复合数据结构。例如,下面的字典将键映射到也是字典的值!

elements = {"hydrogen": {"number": 1,
                         "weight": 1.00794,
                         "symbol": "H"},
              "helium": {"number": 2,
                         "weight": 4.002602,
                         "symbol": "He"}}

我们可以如下所示地访问这个嵌套字典中的元素。

helium = elements["helium"]  
hydrogen_weight = elements["hydrogen"]["weight"]  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值