python中的列表

87 阅读7分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情

大家好,我是木大木大,因为疫情和环境原因啊,在家开始了自学python的路子,从此深坑加一人。后面我会每天持续更新一些学习python的过程,当然一开始就是一些基础啦,希望大家多多支持,莫嫌弃啦~

列表 list

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

字符串,不可变  即:创建好之后内部就无法修改【内置功能都是新创建一份数据】
name = 'xiaochuan'
data = name.upper()
print(name)  # xiaochuan
print(data)  # XIAOCHUAN

列表,可变  即:创建好之后内部元素可以修改 【内置功能都是直接操作列表内部,不会创建一份新的数据】
user_list = ['车子','房子']
user_list.append('票子')
print(user_list) # ['车子', '房子', '票子']
列表创建
列表名 = []

1.1 列表的增删改查

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

1.1.1 增

1.append:添加一个数据,添加到列表的最后一位
语法: 列表名.append(内容)
li.append("木大")
print(li)  # [2, 3, 4, 5, 6, 8, 9, 10, '木大']

2.insert:添加一个数据,添加到指定位置
语法: 列表名.insert(下标位置,内容)
li.insert(0,"木大木大")
print(li)  # ['木大木大', 2, 3, 4, 5, 6, 8, 9, 10, '木大']

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

1.1.2 删

1.pop:删除一个值,默认是从最后一个开始删,也可以指定位置
语法:列表名.pop()
	列表名.pop(下标)
li.pop()
print(li)  # ['木大木大', 2, 3, 4, 5, 6, 8, 9, 10, '木大', '大']
li.pop(-1)
print(li)  # ['木大木大', 2, 3, 4, 5, 6, 8, 9, 10, '木大']

2.remove:删除一个指定的值,如果有多个,从第一个开始删除
语法:列表名.remove(删除对象)
li.remove(3)
print(li)  # ['木大木大', 2, 4, 5, 6, 8, 9, 10, '木大']

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

4.del 全局删除,可以删除一个变量
语法: del 列表名
	del 列表名[下标]
del li[3]
print(li)  # ['木大木大', 2, 4, 6, 8, 9, 10, '木大']
# del li
# print(li)  # 报错,上方已经删除了li这个变量

1.1.3 改

1.单个修改:直接通过下标进行修改
语法:列表名[下标] = 内容
li[1] = '木大大'
print(li)  # ['木大木大', '木大大', 4, 6, 8, 9, 10, '木大']

2.多个修改:通过切片方式进行修改
语法:列表名[起点:终点] = 数据1,数据2...
li[1:3] = 70,20
print(li) # ['木大木大', 70, 20, 6, 8, 9, 10, '木大']

1.1.4 查

1.index:根据内容获取指定数据的下标
语法:列表名.index(要找的内容)
	列表名.index(要找的内容,起点值)
print(li.index(8))  # 4
print(li.index(8,5))  # 报错

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

1.2 通用操作

  • 相加,两个列表相加获取生成一个新的列表
a = [1,2,3]
b = [4,5,6]

print(a+b)

#[1, 2, 3, 4, 5, 6]
  • 相乘,列表*整型 将列表中的元素再创建N份并生成一个新的列表
li = [1,2,3,5]
print(li*3)

#[1, 2, 3, 5, 1, 2, 3, 5, 1, 2, 3, 5]
  • 运算符in包含
  • 获取长度 len()
li = [1,2,3,'www']

print(len(li))

4
  • 索引
data = ('张三', '李四', '王五')
print(data[0])  # 张三
print(data[2])  # 王五
print(data[3])  # 报错
  • 切片
data = ('张三', '李四', '王五','赵六')
print(data[0:2]) # ('张三', '李四')
print(data[1:])  # ('李四', '王五', '赵六')
  • for循环
li = [1,2,3,5]
for i in li:
    print(i)
    
1
2
3
5

1.3 列表生成式

生成[1,2,3,4,5,6,7,8,9]
# 普通写法
li = []
for i in range(1,10):
    li.append(i)
print(li)

# 列表生成式写法
print([i for i in range(1,10)])
生成[1*1,2*2,3*3...9*9]
# 普通写法
li = []
for i in range(1,10):
    li.append(i*i)
print(li)
# 列表生成式写法
print([i*i for i in range(1,10)])
生成[1*2,2*3,3*4...9*10]
# 普通写法
li = []
for i in range(1,10):
    li.append(i*(i+1))
print(li)
# 列表生成式写法
print([i*(i+1) for i in range(1,10)])

1.4 元组 tuple

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

course = 'python','木大'
print(course)  # ('python', '木大')
print(type(course))  # <class 'tuple'>

1.4.1 查

count:统计出现的次数
t = (123,'Google','JD','TaoBao',123)
print(t.count(123))  # 2
print(t.count('JD')) # 1

index:从某个指定下标开始检索某个元素的下标值
print(t.index(123))  # 0
print(t.index(123,2))  # 4 

1.4.2 通用操作

1.相加,两个列表相加获取生成一个新的列表
a = [1,2,3]
b = [4,5,6]

print(a+b)

#[1, 2, 3, 4, 5, 6]


data = ('张三','李四')+('王五','赵六')

print(data)  # ('张三', '李四', '王五', '赵六')

2.相乘,列表*整型 将列表中的元素再创建N份并生成一个新的列表

data = ('张三','李四')*2
print(data)

3.运算符in包含
data = ('张三','李四')
print('张三' in data)  # True
print('王五' not in data)  # True

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

5.索引
data = ('张三', '李四', '王五')
print(data[0])  # 张三
print(data[2])  # 王五
print(data[3])  # 报错

6.切片
data = ('张三', '李四', '王五','赵六')
print(data[0:2]) # ('张三', '李四')
print(data[1:])  # ('李四', '王五', '赵六')

7.步长
data = ('张三', '李四', '王五','赵六','赵七')
print(data[1:4:2])  # ('李四', '赵六')
print(data[0::2])  # ('张三', '王五', '赵七')

8.for循环
data = ('张三', '李四', '王五','赵六')
for i in data:
    print(i)

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

data = (99,88,77,['木大','18'],33)
print(data[3][0])  # 木大
data[3][0] = '木大'
print(data)  # (99, 88, 77, ['木大', '18'], 33)

1.5 格式化输出

1.5.1 %方法(占位符)

%s = 字符串,占一个位置,只能放字符串
%d = 整数,只能放整数
%f = 小数,默认保留6位小数
	%.1f = 保留一位小数
    %.2f = 保留两位小数
语法:("xx%dxxx%s"%(变量1,变量2))
name = '木大'
age = 18
height = 180.123
print("你好,我叫%s,今年%d岁了,身高%f" % (name, age, height))  # 你好,我叫木大,今年18岁了,身高180.123000
print("你好,我叫%s,今年%d岁了,身高%.1f" % (name, age, height))  # 你好,我叫木大,今年18岁了,身高180.1
print("你好,我叫%s,今年%d岁了,身高%.2f" % (name, age, height))  # 你好,我叫木大,今年18岁了,身高180.12
print("你好,我叫%s,今年%d岁了,身高%f" % ('小川', 18, 180.123))  # 你好,我叫木大,今年18岁了,身高180.123000

s = "我叫%s,我今年%d岁了,身高是%f"
print(s%("木大",18,180.123))  # 我叫木大,我今年18岁了,身高是180.123000
print(s%("木大",19,150.123))  # 我叫木大,我今年18岁了,身高是180.123000

1.5.2 format()方法

语法:'{}{}{}'.format(数据1,数据2,数据3)

name = '木大'
age = 18
height = 180.123
print("你好,我叫{},今年{}岁了,身高{}".format(name,age,height))
print("你好,我叫{},今年{}岁了,身高{}".format('木大',18,180.123))
print("你好,我叫{2},今年{0}岁了,身高{1}".format(18,180.123,'木大'))

1.5.3 f-format()

语法:在字符串前面加上一个f/F,把要输出的变量用大括号{}进行包裹
name = '木大'
age = 18
height = 180.123
print(f"大家好,我叫{name},我今年{age}岁,身高{height}") # 大家好,我叫木大,我今年18岁,身高180.123
print(f"大家好,我叫{'木大'},我今年{18}岁,身高{180.0}") # 大家好,我叫木大,我今年18岁,身高180.0
print(f"大家好,我叫{name[0]},我今年{age-1}岁,身高{height+10}") #大家好,我叫木大,我今年17岁,身高190.123

1.6 序列常用的内置函数

函数功能
len()计算序列的长度,即返回序列中包含多少个元素。
max()找出序列中的最大元素.
min()找出序列中的最小元素。
sum()计算元素和。
sorted()对元素进行排序。
s = 'helloworld'
print(len(s))  # 10

li = [2,4,5,6,7,8,9,11]
print(max(li))  # 11
print(min(li))  # 2
print(sum(li))  # 52
print(sorted(li))  # 升序  [2, 4, 5, 6, 7, 8, 9, 11]
print(sorted(li,reverse=True))  # 降序 [11, 9, 8, 7, 6, 5, 4, 2]

今天的阅读就到这里啦,感谢大家的观看么么~