零压力学python网盘_【有书共读11】零压力学Python读书笔记04

索引和函数enumerate; # 我们经常会遇见这样的情况:将一个列表打印出来,并在前面加上序号

import random

my_list = []

for i in range(10):

my_list.append(random.randint(0, 100))

# 方法1:使用range函数和列表来实现

for i in range(len(my_list)):

print(i + 1, my_list[i])

# 方法2:通过变量来实现

m = 1

for i in my_list:

print(m, i)

m += 1

# 方法3:通过enumerate函数实现

for index, p_str in enumerate(my_list, 1):

print(index, p_str)

# 前面两种方法就不详细说了,重点说第三种里面的enumerate函数

'''

for index, p_str in enumerate(my_list, 1):

print(index, p_str)

1:for 里面的迭代器有两个index 和p_str 其中index表示需要的序号,

p_str则是my_list里面的内容

2:enumerate 函数也是传递了两个参数,第一个是列表,第二个是序号的起始数字

3:需要注意的是关键字 in 前面的两个参数的顺序和

enumerate函数里面的两个参数的顺序并不是一样的

'''

再谈 字符串方法format

# 一:简单格式的设置

info = 'my name is {}.'

print(info.format('子永'))

# 输出结果为 my name is 子永.

# 二:设置字段宽度----{:n}

info = 'my name is {:4}.'

print('**************************')  # 用作对比

print(info.format('子永'))

"""

上面语句的运行结果,注意'.'的位置

**************************

my name is 子永  .

"""

# 三:在设置字段宽度的前提下设置对其方式

# 右对齐-->{:>n}    左对齐-->{:{:^n}

# 我们设置字段宽度为五个字符并分别以三种对其方式,打印10以内的奇数

# 右对齐-----注意,数字字段的默认对其方式是右对齐,所以{:

print("*****")  # 对比

for i in range(1, 10, 2):

print('{:>5}'.format(i))

# 左对齐-----注意对非数字字段而言,默认是左对齐,所以{:

for i in range(1, 10, 2):

print('{:<5}'.format(i))

# 居中

for i in range(1, 10, 2):

print('{:^5}'.format(i))

简单的列表推导式 # 先来看一个简单的例子 我们需要将old_list里面的每个元素的平方生成一个新的列表

old_list = [1, 2, 3, 4, 5]

new_list = [i ** 2 for i in old_list]  # 只需要这一行代码就搞定

print(old_list)

print(new_list)

"""

输出结果

[1, 2, 3, 4, 5]

[1, 4, 9, 16, 25]

我们用文字来表述一下

新列表 = [表达式 for循环头]

new_list = [i ** 2 for i in old_list]

那么对上面这个列表推导式的解释应该就是:

对old_list里面的每个i 都将它平方后追加到new_list列表里面

"""

二维列表推导式 """

形式: new_list=[表达式 for语句1 for语句2]

我们可以理解为

new_list=[]

for语句1:

for语句2:

new_list.append(表达式)

"""

# 看一个例子

new_list = [i * j for i in range(1, 3) for j in range(1, 3)]

print(new_list)

# 打印的结果为 [1, 2, 2, 4] 其实是[1*1,1*2,2*1,2*2]

# 上面的二维列表推导式相当于下面的语句

new_list = []

for i in range(1, 3):

for j in range(1, 3):

new_list.append(i * j)

包含条件的列表推到式

"""

形式 新的列表=[表达式 for循环1~n 条件]

这里面for循环可以出现多次,所以我用1~n表示

多个for循环就表示式多嵌套

"""

# 看一个例子---我们对上面那个例子添加一个条件

new_list = [i * j for i in range(1, 4) for j in range(1, 4) if i > j]

print(new_list)  # 这里的输出结果是 [2, 3, 6]

# 对上面的列表推导式的等价为

new_list1 = []

for i in range(1, 4):

for j in range(1, 4):

if i > j:

new_list1.append(i * j)

print(new_list1)  # 这里的输出结果是 [2, 3, 6] 可以看出来和上面一

集合简介---set{}

"""

1 集合中的元素必须是独一无二的,相同的值不能出现两次,这个和列表不同

2 集合中元素的顺序是无关紧要的 即{1,2,3}和{3,2,1}是相同的

3 集合显示时 通常是以一定的顺序显示的

"""

# 集合的定义---{}

a = {1, 2, 3}

b = {3, 2, 1}

print(a)

print(type(a))

print(b)

print(a == b)

"""

输出结果为

{1, 2, 3}

{1, 2, 3}

True

我们可以看出,对与集合a和集合b而言,当给它们打印出来的时候,

它们显示的是一样的

"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值