列表内涵list content:列表推导式

列表推导式就是采用表达式的方式直接过滤数据并且返回新的列表的操作。

  • 基本推导式
1
2
3
4
5
6
7
结果变量 = [变量 for 变量 in 列表]

#声明一个列表
numlist = [1,2,3,4,5,6,7,8,9,10]
#基本推导式
newlist = [i for i in numlist]
print(newlist)
  • 带判断条件的推导式
1
2
3
4
5
6
结果变量 = [变量 for 变量 in 列表 条件表达式]

#带条件的推导式
#newlist = [i for i in numlist if i % 2 == 0]
newlist = [i * 10 for i in numlist if i % 2 == 0]
print(newlist)
  • 多循环列表推导式
1
2
3
4
5
6
7
8
9
10
11
12
13
结果变量 = [变量1 运算 变量2 for 变量1 in 列表1 for 变量2 in 列表2]

#多循环列表推导式
colors1 = ['红','橙','黄']
colors2 = ['青','蓝','紫']

result = [i + j for i in colors1 for j in colors2]
print(result)

解析成普通循环
for i in colors1:
for j in colors2:
i + j 放到列表中
  • 带判断条件的多循环推导式
1
2
3
4
5
6
7
结果变量 = [变量1 运算 变量2 for 变量1 in 列表1 for 变量2 in 列表2 条件表达式]

#带判断条件的多循环推导式
colors1 = ['红','橙','黄']
colors2 = ['青','蓝','紫']
result =[i + '--' + j for i in colors1 for j in colors2 if colors1.index(i) == colors2.index(j)]
print(result)

列表相关的函数(方法)

  • append()
1
2
3
4
5
6
7
列表.append(值) 在列表的最后添加一个数据

fruit = ['苹果','香蕉','西瓜','菠萝']
print(fruit)
fruit.append('贵妃梨')#直接修改原列表
fruit.append('葡萄')
print(fruit)
  • insert()
1
2
3
4
5
6
列表.insert(索引位置,值) 在列表的指定索引之前添加数据

fruit = ['苹果','香蕉','西瓜','菠萝']
print(fruit)
fruit.insert(1,'葡萄')
print(fruit)
  • pop()
1
2
3
4
5
6
7
8
列表.pop()  默认取出并删除最后一个数据
列表.pop(索引位置) 在列表的指定索引位置删除数据

fruit = ['苹果','香蕉','西瓜','菠萝']
print(fruit)
#result = fruit.pop()
result = fruit.pop(1)
print(fruit,result)
  • remove()
1
2
3
4
5
6
列表.remove(值) 在列表中删除指定数据

fruit = ['苹果','香蕉','西瓜','菠萝']
print(fruit)
result = fruit.remove('西瓜')
print(fruit,result)
  • clear()
1
2
3
4
5
6
列表.clear() 清空列表

fruit = ['苹果','香蕉','西瓜','菠萝']
print(fruit,id(fruit))
fruit.clear()
print(fruit,id(fruit))
  • copy()
1
2
3
4
5
6
列表.copy() 复制列表

fruit = ['苹果','香蕉','西瓜','菠萝']
print(fruit,id(fruit))
result = fruit.copy()
print(result,id(result))
  • count()
1
2
3
4
5
列表.count(值) 计算列表中指定数据出现的次数

ages = [23,24,23,24,25,26,22,21,22,19,25,26]
result = ages.count(21)
print(result)
  • extend()
1
2
3
4
5
列表.extend(列表) 将2个列表合并位1个
girls = ['小红','小丽','小萌']
stuents = ['小刚','小明','小城','小盼']
stuents.extend(girls)#将girls列表的数据追加到stuents列表的后面
print(stuents)
  • reverse()
1
2
3
4
5
列表.reverse() 列表反转

num = [1,2,3,4,5,6,7,8]
num.reverse()
print(num)
  • sort()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
num = [12,2,23,1,2,3,23,5,357,4,67,568,6,7,45634,5,24,234]
#1.基本排序(升序)
#num.sort()
#print(num)

#2.倒序排序
num.sort(reverse = True)
print(num)

#3.自定义排序
#按照个位数排列
#定义一个获取数值个位数的函数
def ge(no):
return no % 10
#num = [12,2,23,1,2,3,23,5,357,4,67,568,6,7,45634,5,24,234]
# [2 ,2, 3,1,2,3, 3,5, 7,4, 7, 8,6,7, 4,5, 4, 4]
num.sort(key = ge)
print(num)
  • index()
1
2
3
4
5
列表.index(值) 获取某个值在列表中的索引

num = ["1",2,3,4,5,6,7,8]
num.index("1")
print(num)

元组的定义

  • 空元组
1
2
3
4
5
6
变量 = () 或者变量= tuple()

tup = ()
print(tup,type(tup))
tup = tuple()
print(tup,type(tup))
  • 具有元素的元组
1
2
3
4
5
6
7
单个元素的元组   变量 = (值,)
tup = (250,)
print(tup,type(tup))

具有多个数据的元组 变量=(值,值....) 或者变量=tuple(容器数据)
tup = (1,2,3)
print(tup,type(tup))

元组的基本操作

1
2
3
4
5
6
7
只可以使用索引访问元组,不可以进行其他操作。

# 0 1 2 3
tup = (24,34,444,76)
# -4 -3 -2 -1
print(tup[2])
print(tup[-3])

元组的分片

操作和列表一样。

常用函数

1
2
3
4
#max() 获取元组中的最大值
#min() 获取元组中的最小值
#len() 获取元组中数据格式
#tuple() 创建元组或者将其他数据转化为元组

元组的遍历

同列表一样,嵌套元组和嵌套列表也一样.

元组推导式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
元组推导式的结果不是元组,而是生成器(生成器需要操作才会得到结果)
语法同列表推导式一样

#迭代器
#列表 迭代器的一种(可以这样理解) 数据预先存储在内存中
#生成器
#元组推导式的结果 数据需要的时候才制作,不需要的时候只是等待

num = (1,2,3,4,5,6,7,8,9,10)
#基本
result =(i for i in num)
print(result,type(result))
#遍历生成器
for j in result:
print(j)

#带有判断条件的元组推导式
num = (1,2,3,4,5,6,7,8,9,10)
result = (i * 10 for i in num if i % 2 == 1)
print(result)
#遍历生成器
for j in result:
print(j)

元组函数(方法)

1
2
3
4
index() 获取指定的值在元组中的索引
元组.index(值)
count() 获取指定的值在元组中出现的次数
元组.count(值)