自学内容网 自学内容网

python从0快速上手(六)数据结构

Python学习:数据结构篇

在这个充满数据的世界里,Python的数据结构就像是我们的瑞士军刀,帮助我们切割、打孔、锯割数据,让它们变得井井有条。列表、元组、字典、集合,这些看似简单的工具,却能解决编程中的各种复杂问题。让我们一起来探索这些神奇的数据结构吧!

1. 列表(List)

列表是Python中最常用的数据结构之一,它就像是一列有序的火车车厢,每个车厢都可以装载不同的物品。

创建列表:

my_list = [1, 2, 3, 'Kimi', 'Python']

访问列表元素:
列表元素可以通过索引访问,索引从0开始。

print(my_list[0])  # 输出:1
print(my_list[4])  # 输出:Kimi

切片:
切片就像是把列表切成一片片,你可以获取列表的一部分。

print(my_list[1:3])  # 输出:[2, 3]

添加元素:
你可以在列表的末尾添加元素,就像是在火车尾部加车厢。

my_list.append('new item')
print(my_list)  # 输出:[1, 2, 3, 'Kimi', 'Python', 'new item']

删除元素:
删除元素就像是从火车上卸下车厢。

del my_list[0]  # 删除第一个元素
print(my_list)  # 输出:[2, 3, 'Kimi', 'Python', 'new item']

列表推导式:
列表推导式是一种优雅的方式,用于创建列表。

squares = [x**2 for x in range(10)]
print(squares)  # 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

实例:制作一个简单的待办事项列表

todo_list = []

def add_task(task):
    todo_list.append(task)
    print(f"任务已添加:{task}")

def remove_task(task):
    if task in todo_list:
        todo_list.remove(task)
        print(f"任务已删除:{task}")
    else:
        print("任务不存在")

add_task("学习Python")
add_task("锻炼身体")
remove_task("锻炼身体")
print("当前待办事项:", todo_list)
2. 元组(Tuple)

元组和列表类似,但它是不可变的,就像是已经被封印的列表。

创建元组:

my_tuple = (1, 2, 3, 'Kimi', 'Python')

访问元组元素:

print(my_tuple[0])  # 输出:1
print(my_tuple[4])  # 输出:Python

元组解包:
元组解包是一种将元组中的值赋给多个变量的方式。

a, b, c, d, e = my_tuple
print(a)  # 输出:1
print(e)  # 输出:Python

实例:创建一个个人资料元组

person = ("Kimi", "Moonshot", 30)

def get_full_name(first_name, last_name):
    return f"{first_name} {last_name}"

first_name, last_name, age = person
full_name = get_full_name(first_name, last_name)
print("全名:", full_name)
print("年龄:", age)
3. 字典(Dictionary)

字典是一种存储键值对的数据结构,它就像是一本书的索引,让你快速找到对应的内容。

创建字典:

my_dict = {'name': 'Kimi', 'role': 'AI Assistant', 'active': True}

访问字典元素:

print(my_dict['name'])  # 输出:Kimi

添加和修改元素:

my_dict['age'] = 30
my_dict['active'] = False
print(my_dict)  # 输出:{'name': 'Kimi', 'role': 'AI Assistant', 'active': False, 'age': 30}

删除元素:

del my_dict['age']
print(my_dict)  # 输出:{'name': 'Kimi', 'role': 'AI Assistant', 'active': False}

字典推导式:
字典推导式是一种优雅的方式,用于创建字典。

squares_dict = {x: x**2 for x in range(10)}
print(squares_dict)  # 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

实例:创建一个简单的通讯录

contacts = {}

def add_contact(name, phone_number):
    contacts[name] = phone_number
    print(f"联系人已添加:{name}")

def remove_contact(name):
    if name in contacts:
        del contacts[name]
        print(f"联系人已删除:{name}")
    else:
        print("联系人不存在")

add_contact("Kimi", "1234567890")
add_contact("Moonshot", "0987654321")
remove_contact("Moonshot")
print("当前通讯录:", contacts)
4. 集合(Set)

集合是一个无序且不包含重复元素的数据结构,它就像是一袋子不同的石头,每个石头都是独一无二的。

创建集合:

my_set = {1, 2, 3, 'Kimi', 'Python'}

添加元素:

my_set.add('new item')
print(my_set)  # 输出:{1, 2, 3, 'Kimi', 'Python', 'new item'}

删除元素:

my_set.discard('new item')
print(my_set)  # 输出:{1, 2, 3, 'Kimi', 'Python'}

集合运算:
集合提供了丰富的运算,如并集、交集、差集等。

set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}

# 并集
print(set_a | set_b)  # 输出:{1, 2, 3, 4, 5, 6}

# 交集
print(set_a & set_b)  # 输出:{3, 4}

# 差集
print(set_a - set_b)  # 输出:{1, 2}

实例:找出两组数据的共同点和不同点

set_a = {'apple', 'banana', 'cherry'}
set_b = {'banana', 'kiwi', 'cherry'}

common_items = set_a & set_b
unique_to_a = set_a - set_b
unique_to_b = set_b - set_a

print("共同点:", common_items)
print("A独有的:", unique_to_a)
print("B独有的:", unique_to_b)
实例演练

让我们通过一些有趣的实例来加深理解。

实例1:创建一个函数来找出列表中的前三个素数

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return False
    return True

def find_first_three_primes(numbers):
    primes = []
    for number in numbers:
        if is_prime(number):
            primes.append(number)
        if len(primes) == 3:
            break
    return primes

numbers = [10, 15, 23, 45, 11, 13, 17]
print("前三个素数:", find_first_three_primes(numbers))

实例2:编写一个函数来计算两个字典的共同键和不同的键

def compare_dictionaries(dict1, dict2):
    common_keys = set(dict1.keys()) & set(dict2.keys())
    unique_to_dict1 = set(dict1.keys()) - set(dict2.keys())
    unique_to_dict2 = set(dict2.keys()) - set(dict1.keys())
    return common_keys, unique_to_dict1, unique_to_dict2

dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'b': 2, 'c': 3, 'd': 4}

common, unique_to_dict1, unique_to_dict2 = compare_dictionaries(dict1, dict2)
print("共同键:", common)
print("Dict1独有的键:", unique_to_dict1)
print("Dict2独有的键:", unique_to_dict

实例3:创建一个函数来合并两个列表并去除重复元素

def merge_lists去除重复元素(list1, list2):
    combined_list = list1 + list2
    unique_list = []
    seen = set()
    for item in combined_list:
        if item not in seen or seen.add(item):
            unique_list.append(item)
    return unique_list

list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
print("合并后去除重复的列表:", merge_lists去除重复元素(list1, list2))

实例4:编写一个函数来找出一组数字中的最大和最小值

def find_max_and_min(numbers):
    if not numbers:
        return None, None
    max_val = min_val = numbers[0]
    for number in numbers:
        if number > max_val:
            max_val = number
        if number < min_val:
            min_val = number
    return max_val, min_val

numbers = [10, 20, 30, 40, 50, 60]
max_val, min_val = find_max_and_min(numbers)
print("最大值:", max_val)
print("最小值:", min_val)
小结

列表、元组、字典、集合,这些数据结构就像是我们的编程工具箱,帮助我们以不同的方式组织和处理数据。通过这些基础的数据结构,我们可以构建出复杂的数据模型和算法。记住,选择合适的数据结构是解决编程问题的关键。

现在,你已经掌握了Python数据结构的基础。但是,这只是冰山一角。在编程的世界里,还有更多高级的概念等着你去探索。编程就像是一场冒险,而你已经迈出了第一步。祝你在编程的世界里旅途愉快!🐍💻


原文地址:https://blog.csdn.net/weixin_39346529/article/details/142874645

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!