Ethon

为什么要有方法,因为懒惰是一种美德。

   :: 首页  :: 新随笔  ::  ::  :: 管理

序列是Python中最基本的数据结构,序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间,比如一个整数序列 [10,20,30,40]

 

Python 中的序列类型包括列表(list),元组(tuple),字典(dict)和集合(set)。

 

一、列表

  1.  列表的定义

列表:按顺序保存元素,所有的元素占用一块连续的内存,每个元素都有自己的索引,因此列表和元组的元素都可以通过索引(index)来访问。

user_list = ["Zhangsan","Lisi","Wangwu"]
data_list = ["1","2","3","4"]

2.常用方法

# 1. 【追加】 在原列表中尾部追加值

user_list = []
user1 = input("请输入姓名:")
user2 = input("请输入姓名:")
user_list.append(user1)
user_list.append(user2)
print(user_list)


# 2. 【插入】 在原列表的指定索引位置插入值
number_list = [1,2,3]
number_list.insert(0,4)
number_list.insert(2,7)
print(number_list)# [4, 1, 7, 2, 3]


# 3. 【扩展】 在一个列表中插入另一个列表
number_list1 = [2,4,6]
number_list2 = [1,3,7]
number_list1.extend(number_list2)
print(number_list1 ) # [2, 4, 6, 1, 3, 7]


# 4. 在原列表中删除指定值
number_list = [2, 4, 6, 1, 3, 7]
number_list.remove(4)
print(number_list) # [2, 6, 1, 3, 7]


# 5. 在原列表中根据索引删除某个元素
number_list = [2, 4, 6, 1, 3, 7]
data = number_list.pop() # 删除number_list列表最后一个值,并将删除的值赋给data
result = number_list.pop(2) # 删除number_list列表中索引为2的值,并将删除的值赋得result

# 6. 清空原列表
number_list = [2, 4, 6, 1, 3, 7]
number_list.clear()

# 7. 反转原列表
user_list = ["张三丰", "金毛狮王", "阳顶天", "白眉鹰王"]
user_list.reverse()
print(user_list) # ['白眉鹰王', '阳顶天', '金毛狮王', '张三丰']

3. 转为列表

如果想要让某些元素转换为列表类型,一般需要通过list强转,他的内部其实就是循环每个元素,再将元素追加到列表中,所以想要转换为列表类型有要求:必须可以被循环的元素才能转换为列表。

message = "今天的天气真不错"
data = list(message)
print(data) # ['今', '天', '的', '天', '气', '真', '不', '错']

4、其它功能

# 获取长度
data = [1, 4, 2, 6, 8, 7, 9]
print(len(data))  # 7

# 索引
user_list = ["张三丰", "金毛狮王", "阳顶天", "白眉鹰王"]
print(user_list[0])  # 张三丰
print(user_list[-1])  # 白眉鹰王

# 根据索引删除元素
number_list = [4, 5, 2, 9, 8, 6]
del number_list[0]
print(number_list)  # [5, 2, 9, 8, 6]

# 根据索引替换元素
result = ["北京", "上海", "深圳", "广州"]
result[0] = "天朝"
print(result)  # ['天朝', '上海', '深圳', '广州']

# 切片
name_list = ["杨过", "小龙女", "周伯通", "欧阳锋", "黄药师", "一灯", "洪七公"]
print(name_list[0:2])  # ['杨过', '小龙女']

# 步长
print(name_list[0:6:2])  # ['杨过', '周伯通', '黄药师']

# for循环
data_list = ["华为", "中兴", "联想", "小米", "oppo", "vivo"]
for item in data_list:
    if item == "小米":
        print("小米为发烧而生")

 

二、元组

1. 元组的定义

元组(tuple)是Python中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。元组也可以看做是不可变的列表,通常情况下,元组用于保存无需修改的内容。

元组与列表的区别:

  • 列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列;

  • 元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列。

v1 = (1, 2, 3, 4)
v2 = ("张三丰", "张无忌", "金毛狮王", "白眉鹰王")
v3 = ("abc", )

2.转换

name = "金毛狮王"
data = tuple(name)
print(data) # ('金','毛','狮','王')

3.其它功能

# 获取长度
data = (1, 4, 2, 6, 8, 7, 9)
print(len(data))  # 7

# 索引
user_list = ("张三丰", "金毛狮王", "阳顶天", "白眉鹰王")
print(user_list[0])  # 张三丰
print(user_list[-1])  # 白眉鹰王

# 切片
name_list = ("杨过", "小龙女", "周伯通", "欧阳锋", "黄药师", "一灯", "洪七公")
print(name_list[0:2])  # ('杨过', '小龙女')

# 步长
print(name_list[0:6:2])  # ('杨过', '周伯通', '黄药师')

# for循环
data_list = ("华为", "中兴", "联想", "小米", "oppo", "vivo")
for item in data_list:
    if item == "小米":
        print("小米为发烧而生")

4.嵌套

message = ("今天天气不错","气温刚刚好","('24度','不冷不热')")

data1 = message[0]
data2 = message[2]
data3 = message[2][0]
data4 = message[2][1]

 

三、字典

字典(dict)是一种无序的、可变的序列,它的元素以“键值对(key-value)”的形式存储。字典中,习惯将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为“键值对”。

1. 字典的定义

students = {"name": "张三", "age": 12, "sex": ""}

department_dict = {
    "技术部": ["张三", "李四", "王五"],
    "市场部": ["赵六", "孙七"],
    "财务部": ["周八"]
}

user_info = {
    "张三": {"id": 1, "sex": "", "age": 12},
    "李四": {"id": 2, "sex": "", "age": 14},
    "王五": {"id": 3, "sex": "", "age": 13}
}

print(department_dict["技术部"])  # ['张三', '李四', '王五']
print(department_dict["技术部"][1])  # 李四
print(user_info["张三"])  # {'id': 1, 'sex': '男', 'age': 12}

2.常用方法

student = {"name": "张三", "age": 12, "sex": ""}

# 所有的键
data_key = student.keys()
print(data_key)  # dict_keys(['name', 'age', 'sex'])

# 所有的值
data_value = student.values()
print(data_value)  # dict_values(['张三', 12, '男'])

# 所有的键值
data_items = student.items()
print(data_items)  # dict_items([('name', '张三'), ('age', 12), ('sex', '男')])

# 根据键获取值
data = student.get("name")  # 张三
print(data)

# 更新字典的键值对
student.update({"name": "李四", "age": 13, "sex": ""})
print(student)  # {'name': '李四', 'age': 13, 'sex': '女'}

# 移除字典的键值对
result = student.pop("sex")
print(result)  #
print(student)  # {'name': '李四', 'age': 13}

 

posted on 2022-04-23 19:43  Ethon  阅读(89)  评论(0编辑  收藏  举报