操作列表

回到首页☞
定位:
常规使用,必须熟练

1、列表遍历

books = ["三国演义", "红楼梦", "西游记", "水浒传"]
for book in books:
    print(book)

for循环比Java 简单太多,但是要注意其特性,python没有{}的明显的作用域标志。

  • :不要遗漏,表示一个块的开始
  • 缩进要精准不要多也不要少
  • 空白块无逻辑可以用pass

2、创建列表

当然现在JDK 也有简介的写法,通用功能封装进底层才是最高效的。但是大多停留在JDK 7 8的阶段,很少有项目使用 JDK12、14等版本和新特性。

# range 构建1 ~10
for value in range(1, 10):
    pass

# 通过range 遍历 0~10所有的偶数
for value in range(0, 10, 2):
    pass

# 通过range 构造列表
print(list(range(1, 10)))

# 通过range 构造1~11的平方的列表

squares = []
for value in range(1, 11):
    squares.append(value ** 2)
print(squares)

# 随机数生成一个列表,对列表进行简单统计

import numpy as np
digits = np.random.randint(1,100,10)
print(digits)
print(min(digits))
print(max(digits))
print(sum(digits))

out:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[52 91 8 4 28 93 70 79 83 84]
4
93
592
有些东西很简单就懒得输出了直接pass

反思:python最大的功用在于科学计算,所以想numpy这类库才是核心

3、列表解析

进一步把for循环简化成一行

import numpy as np

squares = [value ** 2 for value in np.random.randint(1, 100, 10)]
print(squares)

out:[400, 4096, 676, 64, 6561, 9604, 3249, 4761, 81, 324]
代码确实精简,但是编码的核心不仅要精简而且可读性要强,如果特别复杂,最好拆开来写。

4、使用列表的一部分-切片

import numpy as np

intList = np.random.randint(1, 100, 10)
print(intList)
print(intList[0:3])

out:
[98 15 68 41 49 26 88 32 67 27]
[98 15 68]

5、复制列表

import numpy as np

intList = list(np.random.randint(1, 100, 10))
intArray = intList
print(intList)
intList.pop()
print(intArray)


inta = list(np.random.randint(1, 100, 10))
intb = inta[:]
print(inta)
inta.pop()
print(intb)

out:
[66, 50, 84, 4, 79, 97, 14, 69, 98, 60]
[66, 50, 84, 4, 79, 97, 14, 69, 98]
[72, 79, 2, 71, 33, 80, 31, 21, 13, 74]
[72, 79, 2, 71, 33, 80, 31, 21, 13, 74]
对比下,就能之到切片复制和直接赋值的区别。

6、元组

列表存储的数据是可以CRUD的,可以存一些有些数据,但是有些数据不可变的,我们把不可变的数据组成的列表成为元组。
列表是[],元组是()

a = (1, 2)
print(type(a))
print(a[0])
a[0] = 2

out:
Traceback (most recent call last):
File “F:/workspace/py/HelloWorld/Test.py”, line 10, in
a[0] = 2
TypeError: ‘tuple’ object does not support item assignment
<class ‘tuple’>
1

说明,只读不能写。

元组相当于java的枚举类,常用来做常量集合,在JDBC中可以表示查询字段属性。

回到首页☞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>