Python基础知识(列表)

本文详细介绍了Python中的三种基本序列类型——列表、元组和字符串,包括它们的定义、操作方法如索引、切片、加法和乘法,以及其他通用特性如遍历、最值和存在性检查。同时提到了集合和字典的区别,强调了它们作为非序列类型在Python编程中的作用。
摘要由CSDN通过智能技术生成

序列:在Python中,序列是指一种数据类型,用来表示一系列按特定顺序排列的值。常见的序列类型包括列表(list)、元组(tuple)、字符串(string)等。

列表(List)

列表是Python中最常用的序列类型之一,可包含任意数量的元素,而且这些元素可以是不同类型的。列表使用方括号 [] 定义,元素之间使用逗号 , 分隔。列表支持增加,删除,修改,切片等操作。

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

元组(Tuple)

元组是另一种序列类型,与列表相似,但元组一旦创建后就不能修改,元组使用圆括号 () 定义,元素之间也使用逗号 , 分隔。

my_tuple = (1, 2, 3, 4, 5)

字符串(String)

字符串也是一种序列类型,表示一系列字符按特定顺序排列。字符串可以使用单引号 ' 或双引号 " 来定义。

my_string = "Hello, World!"

除了以上三种常见的序列类型,Python还提供了其他内置的序列类型,如字节序列(bytes)、字节数组(bytearray)、范围(range)等。

序列类型具有一些通用的特性和操作,例如索引访问,切片,加法,乘法,成员资格检查,长度和最值,遍历,存在性问题,翻转等。这些通用操作使得在处理序列类型时可以使用相似的语法和方法,从而提高了代码的可读性和编写效率。

列表的索引查找

在列表中,可以使用索引来访问列表中的特定元素。列表的索引从0开始,即第一个元素的索引为0,第二个元素的索引为1,依此类推。可以使用索引值在列表中查找对应位置的元素。

my_list = [10, 20, 30, 40, 50]
print(my_list[0])  # 输出:10
print(my_list[2])  # 输出:30
print(my_list[-1]) # 输出:50
print(my_list[-2]) # 输出:40

列表的切片

切片操作可以从列表中获取子列表,可以指定起始索引、结束索引和步长来获取不同的子列表。

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(my_list[2:5])  # 输出:[3, 4, 5]
print(my_list[::2])  # 输出:[1, 3, 5, 7, 9]
print(my_list[-10:5]) # 输出:[1,2,3,4,5,,6]

列表的加法和乘法

列表支持加法操作和乘法操作。加法操作将两个列表合并为一个新的列表,而乘法操作将列表重复指定次数。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
new_list = list1 + list2  # 加法操作
print(new_list)  # 输出:[1, 2, 3, 4, 5, 6]

my_list = [1, 2, 3]
new_list = my_list * 3  # 乘法操作
print(new_list)  # 输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]

列表的成员资格

可以使用 in 运算符来检查一个元素是否存在于列表中,返回结果为布尔值。

my_list = [1, 2, 3, 4, 5]
print(3 in my_list)  # 输出:True
print(6 in my_list)  # 输出:False

创建列表

可以使用方括号 [] 来创建一个列表,也可以使用 list() 函数将其他可迭代对象(如元组、字符串)转换为列表。

my_list = [1, 2, 3, 4, 5]
another_list = list((6, 7, 8, 9, 10))
# 创建一个空的列表
arr = []
print(arr)
# 创建一个具有若干元素的列表
arr = [1, 2, 3, 4]
print(arr)
# 创建一个具有长度但是没有值的列表
arr = [None] * 5
print(arr)
# 通过【列表推导式/解析式】来进行创建
# [目标值表达式 for 目标值 in 迭代对象 if ....]
# 创建1~100当中 能够被3整除 且 能够被5整除 的所有数字
"""
for x in range(1, 101):
if x % 3 == 0 and x % 5 == 0:
print(x)
"""
arr = [x for x in range(1, 101) if x % 3 == 0 and x % 5 == 0]
print(arr)
# 创建1~100当中 偶数
arr = [x for x in range(1, 101) if x % 2 == 0]
print(arr)
# 水仙花数
for num in range(100, 1000):
a = num % 10
b = num // 10 % 10
c = num // 100
if a ** 3 + b ** 3 + c ** 3 == num:
print(num)
arr = [num for num in range(100, 1000) if (num % 10) ** 3 + (num // 10 % 10) **
3 + (num // 100) ** 3 == num]
print(arr)
arr = [x * 3 + "哈哈" for x in "ABCDEFG"]
print(arr)
# 通过输入来获取元素
"""
5
"1" "2" "3" "4" "5"
"""
n = eval(input())
arr = input().split(" ") # 将输入的数据以空格分割 分割的结果就是列表
print(arr)
arr = [int(x) for x in arr]
print(arr)

列表的遍历

可以使用循环来遍历列表中的元素。

#方法一
my_list = [1, 2, 3, 4, 5]
for item in my_list:
    print(item)
#方法二
for item in range(len(my_list)):
    print(my_list[item])

列表的最值

可以使用 max() 和 min() 函数找到列表中的最大值和最小值。

#内置函数
my_list = [10, 20, 30, 40, 50]
print(max(my_list))  # 输出:50
print(min(my_list))  # 输出:10
#方法二
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
minNum = arr[0]
maxNum = arr[0]
for i in arr[1, 9]:
    if arr[i] > maxNum:
        maxNum = arr[i]
    if arr[i] < minNum:
        minNum = arr[i]
print(maxNum)
print(minNUm)

列表的存在性问题

可以使用 in 运算符检查列表中是否存在某个元素,也可以使用 index() 方法找到元素的索引。

#内置方法
my_list = [1, 2, 3, 4, 5]
print(3 in my_list)  # 输出:True
print(my_list.index(3))  # 输出:2
#方法二
#判断元素是否在列表中
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
key = 10 
for num in arr:
    if key == num:
        break
else:
    print("不存在")
#判断元素是否在列表中,在返回元素的下标,不在返回-1
key = 10
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(len(arr)):
    if key == arr[i]:
        num = i
        print(num)
        break
else:
    num = -1
    print(num)

列表的翻转

可以使用 reverse() 方法将列表中的元素倒序排列。

#内置函数
my_list = [1, 2, 3, 4, 5]
my_list.reverse()
print(my_list)  # 输出:[5, 4, 3, 2, 1]

#方法一
left = 0
right = len(arr) - 1
while left <= right:
    arr[left],arr[right] = arr[right], arr[left]
    left += 1
    right -= 1
print(arr)
#方法二
num = 0
for i in range(len(arr) // 2):
    j = len(arr) -1 - i
    arr[i], arr[j] = arr[j], arr[i]
print(arr)

 查找算法

二分查找:要求数据必须有序

二分查找算法通过将待查找区域的中间元素与目标值进行比较,从而缩小待查找区域的范围。

arr = [1,2,3,4,5,6,7,8,9]
minIndex = 0    
maxIndex = len(arr) - 1
midIndex = (minIndex + maxIndex) // 2
key = 8
while arr[midIndex] != key:
    if arr[midIndex] < key:
        minIndex = midIndex + 1
    else:
        maxIndex = midIndex - 1
    if minIndex > maxIndex:
        midIndex = -1
        break
    midIndex = (minIndex + maxIndex) // 2
print(midIndex)

列表是Python中非常常用的数据类型之一,具有丰富的操作方法和功能,能够灵活处理各种数据集合。

总的来说,序列是Python中非常重要的数据类型之一,它们广泛用于存储和操作数据集合,为Python编程提供了强大的工具和灵活的表达能力。

集合(Set)和字典(Dictionary)不属于序列类型。

集合(Set)

集合是一种无序且不重复的元素集合,其中的元素是不可变的(immutable)。在 Python 中,集合使用大括号 {} 定义,元素之间使用逗号 , 分隔。与列表和元组不同,集合中的元素没有顺序,因此不能通过索引访问。

示例:

my_set = {1, 2, 3, 4, 5}

字典(Dictionary)

字典是一种键值对(key-value)的数据结构,其中每个值(value)都与一个唯一的键(key)相关联。字典使用大括号 {} 定义,键值对之间使用冒号 : 分隔,各个键值对之间使用逗号 , 分隔。

示例:

my_dict = {"name": "Alice", "age": 25, "city": "New York"}

与序列类型(如列表、元组、字符串)不同,集合和字典并不支持索引访问。在集合中,元素是无序的,因此不能通过索引来访问集合中的元素;在字典中,元素是通过键来进行访问和操作的,而不是通过索引。

综上所述,集合和字典都不属于序列类型。然而,集合和字典都是 Python 中的重要数据结构,在实际编程中有着各自的用途和特点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值