一、列表
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)
标签:Python,数据类型,列表,步长,李四,王五,print,li,元组
From: https://blog.csdn.net/weixin_70987470/article/details/140793779