(小甲鱼python)列表系列笔记合集四 第七课、列表VII总结(再谈列表推导式、去除列表相同元素、两个列表字符串的拼接)

一、创建二维列表

方法一:
这种方法不推荐,因为内部嵌套的列表不是三个独立的列表,而是对同一个列表的三次引用(内层共用一个存储地址,所以改变其中一个其他两个也会改变)。
在这里插入图片描述
方法二:
for循环创建。
在这里插入图片描述方法三:
列表推导式创建。
eg1:
在这里插入图片描述

二、列表推导式

1.添加一个用于筛选的if分句
[expression for target in iterable if condition]
eg1:
在这里插入图片描述eg2:
在这里插入图片描述2.两层for语句
eg1:列表推导式
在这里插入图片描述
eg2:普通嵌套

在这里插入图片描述
eg2:
在这里插入图片描述

eg2.2
在这里插入图片描述eg3:两次循环,两次判断
在这里插入图片描述3.1

_ = [ ] # 某个变量是临时的或无关紧要的用"_"表示
但 _var、_var、var、var,都有各自的特殊含义。

在这里插入图片描述

三、去除列表相同元素

nums=[1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 6, 7, 45, 56, 78, 78, 99]
b=[]
for i in nums:
    if i in b:
        continue
    else:
        b.append(i)
print(b)

在这里插入图片描述课后题:

  1. 请使用列表推导式创建一个 4 * 5 的二维列表,并将每个元素初始化为数字 8。

4 * 5 就是 4 行 5 列,是内层嵌套列表包含 5 个元素,外层列表包含 4 个嵌套列表

代码一:

>>> s = [[8] * 5 for i in range(4)]
>>> s
[[8, 8, 8, 8, 8], [8, 8, 8, 8, 8], [8, 8, 8, 8, 8], [8, 8, 8, 8, 8]]

代码二:

A=[]
for i in range(4):
    A.append([])
    for j in range(5):
        A[i].append(8)

print(A)

代码三:

A=[]
A=[8]*4

for i in range(4):
    A[i]=[8]*5
print(A)
  1. 请将下面 matrix 矩阵反向展开,即使得最终的结果为 [9, 8, 7, 6, 5, 4, 3, 2, 1]。
>>> matrix = [[1, 2, 3],
...           [4, 5, 6],
...           [7, 8, 9]]

答案代码:

>>> flatten = [col for row in matrix for col in row][::-1]
>>> flatten
[9, 8, 7, 6, 5, 4, 3, 2, 1]

代码二:

B=[each for i in matrix for each in i]
B.reverse()
print(B)
  1. 鱼C-T恤总共提供了有 2 种颜色(“BLACK”, “WHITE”)和 10 个码数(“WS”, “WM”, “WL”, “S”, “M”, “L”, “XL”, “2XL”, “3XL”, “4XL”)的选择,请使用列表推导式统计所有颜色和尺码的组合(要求将每个组合使用一个内嵌的列表包含起来,如下所示)。
>>> colors = ["BLACK", "WHITE"]
>>> sizes = ["WS", "WM", "WL", "S", "M", "L", "XL", "2XL", "3XL", "4XL"]
>>> 
>>> result = [[color, size] for color in colors for size in sizes]
>>> 
>>> result
[['BLACK', 'WS'], ['BLACK', 'WM'], ['BLACK', 'WL'], ['BLACK', 'S'], ['BLACK', 'M'], ['BLACK', 'L'], ['BLACK', 'XL'], ['BLACK', '2XL'], ['BLACK', '3XL'], ['BLACK', '4XL'], ['WHITE', 'WS'], ['WHITE', 'WM'], ['WHITE', 'WL'], ['WHITE', 'S'], ['WHITE', 'M'], ['WHITE', 'L'], ['WHITE', 'XL'], ['WHITE', '2XL'], ['WHITE', '3XL'], ['WHITE', '4XL']]

代码一:

for i in range(len(colors)):  
     for j in range(len(sizes)):
          result.append([])
          result[num].append(colors[i])
          result[num].append(sizes[j])
          num+=1

print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值