7-Python数据类型——列表和元组的详解(增删改查、索引、切片、步长、循环)

一、列表

1.1 列表 list

有序且可变的容器,可以存放多个不同类型的元素

列表就是专门用来记录多个同种属性的值

列表:存储同一个类别的数据,方便操作

  • 字符串,不可变:即:创建好之后内部就无法修改【内置功能都是新创建一份数据】
name = "xiaochaun"
data = name.upper()
print(name)
print(data)
xiaochaun
XIAOCHAUN
  • 列表,可变类型:即:创建好之后内部元素可以修改。

    【功能基本上都是直接操作列表内部,不会创建一份新的数据】

user_list = ['车子','房子']
user_list.append("票子")
print(user_list)

['车子', '房子', '票子']

列表的创建

列表名 = []
例:list01 = []

列表的增删改查

li = [2,3,4,6,8,9,10]

1.1.1 增 ,追加(在原列表中的尾部追加值)

1.append:添加一个数据,添加到列表的最后一位
语法:列表名.append("内容")
li.append("小川")
print(li)

2.insert:添加一个数据,到指定的位置
语法:列表名.insert(下标位置,内容)
li.insert(0,"乃荣")
print(li)

3.extend:添加一个序列类型,到最后一位,并且把序列类型拆分
语法:列表名.extend(序列类型)
# 会拆分追加进去
li.extend("大力")
print(li)
# 如果用一个中括号括起来的追加进去就不会拆分
li.extend(['大力'])
print(li)

1.1.2 删

1.pop:删除一个值,默认从最后一个开始删,也可以指定位置
语法:
列表名.pop()
列表名.pop(下标)
li.pop(-1)
print(li)
li.pop()
print(li)

2.remove:删除一个指定的值,如有多个,就从第一个开始删
语法:列表名.remove(删除对象)
li.remove(3)
print(li)

3.clear:清空列表里面的所有数据
语法:列表名.clear()
li.clear()
print(li)

4.del 全局删除,可以删除一个变量
语法:
del 列表名
del 列表名[下标]
del li[3]
print(li)

1.1.3 改

1.单个修改:直接通过下标进行修改
语法:列表名[下标] = 内容
li[1] = "张三"
print(li)

2.多个修改:通过切片方式进行修改
左闭右开
语法:列表名[起点:终点] = 数据1,数据2...
li[1:3] = 70,20
print(li)

1.1.4 查

1.index:根据内容获取指定数据的下标
语法:
列表名.index(要找的内容)
列表名.index(要找的内容,起点值)
print(li.index(8))
print(li.index(8,5))# 搜索值为8的数据,从下标5的位置开始往后搜索,没有就会报错,显示不在列表中

2.count:统计数据出现的次数
语法:列表名.count(要找的内容)
print(li.count(70))

1.1.5 sort和sorted

排序(int的列表才可以排序)
sort是在原列表上修改
sorted是返回一个新的列表
sort:让列表的内容按照顺序的方式来排列
语法:
列表名.sort()——》升序
列表名.sort(reverse = True)——》降序

li = [2,3,400,68,38,9,10]
li.sort()
print(li)
li.sort(reverse=True)
print(li)

[2, 3, 9, 10, 38, 68, 400]
[400, 68, 38, 10, 9, 3, 2]

li1 = sorted(li) # 生成了一个新列表
print(li1)

1.1.6 列表生成式

生成一到十的列表

普通方式:
li = [1,2,3,4,5,6,7,8,9,10]
print(li)

使用range(1,11)
print(list(range(1,11)))

普通的列表生成式
普通的for循环创建列表
li = []
for i in range(1,11):
    li.append(i)
print(li)
列表生成式生成
print([i for i in range(1,10)])

[1x1,2x2,3x3,…9x9]

li = []
for i in range(1,10):
    li.append(i*i)
print(li)
列表生成式
print([i*i for i in range(1,10)])

可以写出非常简洁的代码,但是并不倡导大家平时开发去写这种东西,因为可读性不高,bug不好修改,建议在非常简单的情况下可以选择偷懒用列表生成式,而带if和多重for循环最好不要使用

[1*2,2*3,3*4...9*10]
print([i*(i+1) for i in range(1,10)])

1.1.7 功能

1.相加,两个元组相加获取生成一个新元组
2.相乘,元组*整形,将元组中的元素再创建n份并生成一个新的元组
3.获取长度
4.索引
5.切片
6.步长,隔多少取值
7.for循环

2.2 元组 tuple

不可变,只有查询方法,并且跟列表的用法一模一样

如果元素数量是固定的,建议使用元组,因为占用空间更小

元组通常是使用一对小括号将所有的元素包围起来的,但是小括号不是必须的,只要将各元素用逗号隔开就可以,python就会将其视为元组

# 定义一个元组
t = "python","jc"
print(t)

2.2.1 查

1.count()
用于统计某个元素在元组中出现的次数
t = (123,"Google","JD","Taobao",123)
print(t.count(123))
print(t.count("JD"))

2
1

2.index():找到数据的下标值
从某个指定下标开始查询某个元素的下标值
t = (123,"Google","JD","Taobao",123)
print(t.index(123))  # 0
print(t.index(123,2))  # 4

2.3.2 功能

1.相加,两个元组相加获取生成一个新元组
data = ("张三","李四")+("王五","赵六")
print(data)  # ('张三', '李四', '王五', '赵六')

2.相乘,元组*整形,将元组中的元素再创建n份并生成一个新的元组
data = ("张三","李四")*2
print(data)

3.获取长度
t = ('张三', '李四', '王五')
print(len(t))  # 3

4.索引
t = ('张三', '李四', '王五')
print(t[0])

5.切片
t = ('张三', '李四', '王五', '赵六')
print(t[0:3])  # ('张三', '李四', '王五')
print(t[1:])  #('李四', '王五', '赵六')
6.步长,隔多少取值
t = ('张三', '李四', '王五', '赵六','赵本山')
print(t[1:4:2])  # ('李四', '赵六')
print(t[0::2])  # 从0开始到所有 隔2取 ('张三', '王五', '赵本山')


7.for循环
t = ('张三', '李四', '王五', '赵六','赵本山')
for i in t:
    print(i)
    
t = ('张三', '李四', '王五', '赵六','赵本山')
for i in t:
    if i == '王五':
        continue
    print(i)

目前只有str,list,tuple可以被for循环

元组本身不可以改变,但是如果元组中还包含其他可变元素,这些可变元素即可改变

t = (99,88,77,['jc','18'],33)
t[3][0] = 'xf'
print(t)
  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JC03

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

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

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

打赏作者

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

抵扣说明:

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

余额充值