Python列表元组基础

列表的应用场景

思考:有一个人的姓名,怎么书写存储程序?

答:变量。

思考:如果一个班级100位学生,每个人的姓名都要存储,应该如何书写程序?声明100个变量吗?

答:列表即可, 列表一次性可以存储多个数据。

格式
变量名=[数据1, 数据2, 数据3, 数据4......]
  • 列表可以一次性存储多个数据,且可以为各种不同数据类型。
常用操作
  • 列表的作用是一次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、改、查。
查找
len()
  • 返回列表长度,即列表中数据的个数。
len(list)
下标
  • 与字符串下标一样的规则
  • 也可切片获得一个新的子列表

如:

holidays=["4.30","5.1","5.2","5.3","5.4"]

print(f"五一假期:{holidays}")
print(f"五一假期的第一天:{holidays[0]}")
print(f"五一假期的最后一天:{holidays[4]}")

在这里插入图片描述

index()
  • 语法
list.index(value, begin, end)
  • 返回指定数据所在位置的下标 。如果查找的数据不存在则报错。
  • begin,end,规定查找范围:[begin,end)

如:

animals=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]

index=animals.index("猴")
print(f"猴的下标:{index}")
index=animals.index("猴",0,8)
print(index)

在这里插入图片描述

count()
  • 统计指定数据在当前列表中出现的次数。
list.count(value)
判断
in
  • 判断指定数据是否在某个列表中,如果在返回True,否则返回False
answer=["A","B","C","D"]

while(True):
    x=input("A\tB\tC\tD\n请输入您的答案:")
    if x in answer:
        print("已成功提交答案!")
        break
    else:
        print("不在选项范围内,请重新答题!")

在这里插入图片描述

not in
  • 判断指定数据是否在某个列表序列,如果不在返回True,否则返回False
answer=["A","B","C","D"]

while(True):
    x=input("A\tB\tC\tD\n请输入您的答案:")
    if x not in answer:
    	print("不在选项范围内,请重新答题!") 
    else:
        print("已成功提交答案!")
        break
增加
  • 作用:增加指定数据到列表中。
  • 对列表本身进行操作,操作之后改变了列表的内容
append()
  • 在列表结尾追加单个数据

  • 如果这个数据是序列(list、tuple、dict),也把它当成整体添加到列表中。

  • 语法

list.append(value)

names=["张三","李四"]
print(names)
names.append("王二麻子")
print(names)
names.append(["琪琪","恰恰","蹦蹦","拉拉"])
print(names)

在这里插入图片描述

extend()
  • 列表结尾追加数据,如果数据是一个序列,则将这个序列拆散,逐一添加到列表中。
  • 语法
list.extend(数据)

如:

names=["张三","李四"]
print(names)
names.extend("赵钱孙李")
print(names)
names.extend(["琪琪","恰恰","蹦蹦","拉拉"])
print(names)

在这里插入图片描述

insert()
  • 指定位置新增数据。
  • 语法
list.insert(index, value)
删除
del
  • 语法
del list/list[index]
  • 删除整个列表
holidays=["4.30","5.1","5.2","5.3","5.4"]

print(f"五一假期:{holidays}")

在这里插入图片描述

  • 删除指定数据
holidays=["4.30","5.1","5.2","5.3","5.4"]

del holidays[3]
del holidays[3]
print(f"五一假期:{holidays}")

在这里插入图片描述

pop()
  • 删除指定下标的数据(默认为最后一个),并返回该数据。一般用变量接受返回的数据,进行相应操作。

  • 语法

popped=list.pop(index)

如:

holidays=["4.30","5.1","5.2","5.3","5.4"]

gone=holidays.pop()
print(f"{gone}照常上课")
gone=holidays.pop(-1)
print(f"{gone}照常上课")
print(f"五一假期:{holidays}")

在这里插入图片描述

remove()
  • 移除列表中某个数据的第一个匹配项。

  • 语法

list.remove(value)

如:

my_game=["bug","bug","bug","bug","bug","bug"]
print(my_game)
my_game.remove("bug")
print(my_game)
my_game.remove("bug")
print(my_game)

在这里插入图片描述

clear()
list.clear()
  • 清空列表,得到空列表[]

holidays=["4.30","5.1","5.2","5.3","5.4"]

holidays.clear()
print(f"五一假期:{holidays}")

在这里插入图片描述

修改
  • 修改指定下标数据
list[index]=new_value

如:

my_game=["bug","bug","bug","success","bug","bug"]
print(my_game)
my_game[3]="bug"
print(my_game)

在这里插入图片描述

reverse()
  • 倒置列表

如:

weights=[50,49,48,47,46,45]

print("体重变化:",end=" ")
for weight in weights:
    print(f"{weight}kg",end=" ")

print()

weights.reverse()
print("体重变化:",end=" ")
for weight in weights:
    print(f"{weight}kg",end=" ")

在这里插入图片描述

sort()
  • 可对列表进行排序

  • 语法

list.sort(key=None, reverse=False)
  • key 可选,为自定义函数,可指定排序标准

  • reverse可选,默认为升序,若指定为True则降序

  • 字符串默认按字符码大小排序

如:

nums=[10,2,4,3,6,78]

nums.sort()
print(nums)

nums.sort(reverse=True)
print(nums)

在这里插入图片描述

sorted()
  • 对列表的拷贝进行排序,返回一个排完序的新列表
  • 语法:
sorted(list,key=None, reverse=False)
  • 语法细节同sort()
复制
copy()
copy_list=list.copy()
  • 返回list的拷贝
切片法
copy_list=list[:]
循环遍历
while
nums=[1,2,3,4,5,6]

i=0
while i<len(nums):
    print(nums[i])
    i+=1
for
nums=[1,2,3,4,5,6]

for i in range(len(nums)):
    print(nums[i])

#或者
for num in nums:
    print(num)

元组

元组的应用场景
  • 思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?

  • 答:列表?列表可以一次性存储多个数据,但是列表中的数据允许更改。

num_list = [10, 20, 30]
num_list[0] = 100
  • 一个元组可以存储多个数据,元组内的数据是不能修改
格式
变量名=(数据1, 数据2, 数据3, 数据4......)
  • 元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。
# 多个数据元组
rgb = (0, 255, 255)

# 单个数据元组
name= ("Lily",)

#空元组
none=()
  • 如果定义的元组只有一个数据,那么这个数据后面也好添加逗号,否则数据类型为唯一的这个数据的数据类型
t1 = (10,)
print(type(t1))  # tuple

t2 = (20)
print(type(t2))  # int

t3 = ('hello')
print(type(t3))  # str
常见操作
修改
  • 元组内的直接数据不支持修改。

  • 元组内的直接数据如果修改则立即报错

    tuple1 = ('aa', 'bb', 'cc', 'bb')
    tuple1[0] = 'aaa'
    

    但是如果元组里面有列表,修改列表里面的数据则是支持的。

    tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
    print(tuple2[2])  # 访问到列表
    
    tuple2[2][0] = 'aaaaa'
    print(tuple2)
    # 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
    
  • 可以对整个元组变量重新赋值

rgb=(6,6,6)
rgb[0]=66  #不行
rgb=(66,6,6)  #行
查找
len()
  • 统计元组中数据的个数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1))  # 4
下标
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0])  # aa
print(tuple1[0:2])  #(aa,bb)
index()
tuple.index(value)
  • 查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同。
count()
  • 统计某个数据在当前元组出现的次数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb'))  # 2
删除
del
  • 语法
del tuple
  • 只能删除一整个元组;不支持像列表那样删除单个数据
遍历循环
while
months=(1,2,3,4,5,6,7,8,9,10,11,12)

i=0
while i<len(months):
    print(mouths[i])
    i+=1
for
months=(1,2,3,4,5,6,7,8,9,10,11,12)

for i in range(len(months)):
    print(months[i])

#或者
for month in months:
    print(month)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子希卡利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值