Python--列表(List)

                                               List  列表

1   List 常用操作

#使用[]创建列表
list1 = []
list2 = [100,200,300]
#一个类表中可以具有不同的数据类型的元素
list3 = [[1,2,3],44,'liuxing']

#可以使用+号,操作多个list 进行连接

a = [1,2,3,4,5]
b = [5,6,7,8,9]
d = ['a', 'b', 'c']
c = a + b + d
print(c)

#可以使用 * 号,对一个list进行复制
a = [1,2,3,4,5]
b = a *3
print(b)

#可以使用 in not in 判断一个元素是否在list多
#常用与循环中,或者if 判断中
a = [1,2,3,4,5,6]
b = 8

#c 的值是一个布尔值
c = b in a
print(c)

d = b not in a
print(d)

2  列表常用操作

2.1  访问列表

(1) 使用索引下表操作

(2) 列表的位置是从0开始

#下表访问列表
l = [1,2,3]
print(l[1])

2.2  切片操作(也适用于 str, tuple)

切片操作就是对列表的任意一段进行截取

切片格式为 list[start:end:step] , 默认步长1 格式为 list[start:end]

1. start 表示从哪个下表开始,可以不写 默认从0开始

2. end 表示到哪里结束,可以不写,默认截止到最后一个index +1。这个值取不到,只能取到前一个值

3. step 表示步长,默认为1,表示1个1个取,如果为2 表示隔一个取

#创建列表
l = [i for i in range(1,10)]

#切片样例
print(l[1:4])
print(l[:])
print(l[:4])
print(l[2:])
print(l[1:9:2])

规定: 数组最后一个数字的下标是 -1

 

List 负数切片

普通切片是从前往后进行截取元素

负数切片则是从后往前进行截取元素

一般情况下  list1[-a:-b]   a的值必须大于b,小于切出来为空

step 为负数是表明反正来 如果 a的值小于b, 可以把step 置为负数

list1 = [i for i in range(1,10)]
print(list1)

#切片为空列表
print(list1[-1:-8])
print(list1[-8:-1])

#切片值等同于list1[-8:-1]
print(list1[-1:-8:-1])

切片常用与对一个列表的复制操作,生成的是一个新的列表

= 操作只是对于一个列表进行引用,地址复制而已

list 2 = list1[:]

 

3  列表的常用函数

   函数                                                                        含义             示例
appendlist 末尾插入一个值list1.append(100)
insertinsert(index,data) 指定位置插入一个值list1.insert(3, 666)
remove

删除列表中的一个值,如果没有这个值报错

if x in list:

      list.remove(x)

 

如果有多个值,删除了list下表的第一个

如果要删除列表中值相同的所有元素,要使用循环进行删除,不过不怎么用

list1 = ['a','a','a','a','b','c']

while 'a' in list1:
    list1.remove('a')

 

list1.remove('val1')
del删除命令,按照索引进行删除del list1[idx1]
clear对列表进行清空,保存长度索引list1.clear()
reverse对列表进行翻转

list1.reverse()

extend对列表进行扩展,把一个列表拼接到另外一个列表中list1.extend(list2)
count查找列表中制定值或元素的个数list1.count('val1')
copy

对一个列表进行浅拷贝,如果list中有 list, dict, tuple 等。 进行拷贝后,

这些元素只是进行地址复制,并不是值复制

list2 = list1.copy()
len求长度 适用于tuple str dict ...len(list1)
max求最大值max(list1)
min求最小值min(list1)

4 列表遍历

# 使用for 进行遍历:
a = [1,2,3,4,5,6,7]

for i in a:
    print(i)

# 使用range可定义有限次数的循环
for i in range(1,10):
    print(i)

# 双层列表循环
# 子列表中元素的个数必须与for中变量个数完全一致,否则出错
a = [["one", 1], ["two", 2], ["three", 3]]
for k,v in a:
    print(k, "--", v)


5 列表中的解析式(解析式可以应用与可迭代的数据类型)

列表解析是主要是为了使python 代码简化,把一串很长的代码用一行代码表示

基本表达格式

[expression  for  var1 in list1  if  condition]

if condition 不是必须

expression  为表达式

如果多个变量 需要使用  for var1 in list1  for var2 in list2

 

#最简单的例子
l1 = [i for i in range(1,10)]

#等同于
for i in range(1,10):
    l1.append(i)


#带条件的解析式
numbers = [1, 2, 3, 4, 5]
doubled_odds = [n * 2 for n in numbers if n % 2 == 1]

# 等同于
numbers = [1, 2, 3, 4, 5]
doubled_odds = []
for n in numbers:
    if n % 2 == 1:
        doubled_odds.append(n * 2)

#双层循环
flattened = [n for row in matrix for n in row]

#等同于
flattened = []
for row in matrix:
    for n in row:
        flattened.append(n)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值