1.列表

  • 列表都可以进行的操作包括索引,切片,加,乘,检查成员。
• s=input().split()    //分割产生列表

使用下标来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符

list = ['Google', 'Runoob', "Zhihu", "Taobao", "Wiki"]
 
# 读取第二位
print ("list[1]: ", list[1])
# 从第二位开始(包含)截取到倒数第二位(不包含)
print ("list[1:-2]: ", list[1:-2]) 
list[1]:  Runoob
list[1:-2]:  ['Runoob', 'Zhihu']

!截取一段列表,结果仍为列表

  • 可以使用 append() 方法来添加列表项 语法:list.append(obj)

obj -- 添加到列表末尾的对象

list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1) 
更新后的列表 :  ['Google', 'Runoob', 'Taobao', 'Baidu']

Python列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

如下所示:

Python 表达式

结果

描述

len([1, 2, 3])

3

长度

[1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

组合

['Hi!'] * 4

['Hi!', 'Hi!', 'Hi!', 'Hi!']

重复

3 in [1, 2, 3]

True

元素是否存在于列表中

for x in [1, 2, 3]: print(x, end=" ")

1 2 3

迭代

嵌套列表

使用嵌套列表即在列表里创建其它列表,例如:

>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

列表比较

列表比较需要引入 operator 模块的 eq 方法

  ***拓展:operator 模块

operator.lt(a, b)a < b 相同, operator.le(a, b)a <= b 相同,operator.eq(a, b)a == b 相同,operator.ne(a, b)a != b 相同,operator.gt(a, b)a > b 相同,operator.ge(a, b)a >= b 相同。

operator.add(x, y) 与表达式 x+y 相同,

# Python 实例
# add(), sub(), mul()
 
# 导入  operator 模块
import operator
 
# 初始化变量
a = 4
 
b = 3
 
# 使用 add() 让两个值相加
print ("add() 运算结果 :",end="");
print (operator.add(a, b))
 
# 使用 sub() 让两个值相减
print ("sub() 运算结果 :",end="");
print (operator.sub(a, b))
 
# 使用 mul() 让两个值相乘
print ("mul() 运算结果 :",end="");
print (operator.mul(a, b))

add() 运算结果 :7 sub() 运算结果 :1 mul() 运算结果 :12 ***

# 导入 operator 模块
import operator

a = [1, 2]
b = [2, 3]
c = [2, 3]
print("operator.eq(a,b): ", operator.eq(a,b))
print("operator.eq(c,b): ", operator.eq(c,b))

operator.eq(a,b): False operator.eq(c,b): True

  • 函数

序号

函数

1

len(list) 列表元素个数

2

max(list) 返回列表元素最大值

3

min(list) 返回列表元素最小值

4

list(seq) 将元组转换为列表

例:

aTuple = (123, 'Google', 'Runoob', 'Taobao')
list1 = list(aTuple)
print ("列表元素 : ", list1)

str="Hello World"
list2=list(str)
print ("列表元素 : ", list2) 
列表元素 :  [123, 'Google', 'Runoob', 'Taobao']
列表元素 :  ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

Python包含以下方法:

序号

方法

1

list.append(obj) 在列表末尾添加新的对象

2

list.count(obj) 统计某个元素在列表中出现的次数

例:aList = [123, 'Google', 'Runoob', 'Taobao', 123];

       print ("123 元素个数 : ", aList.count(123))


123 元素个数 : 2

3

list.extend(seq) 将一个列表的全部元素添加到另一个列表中,list为原列表,seq为要添加的列表

4

list.index(obj)       --获取指定元素首次出现的下标

list.index(x[, start[, end]])



  • x-- 查找的对象。
  • start-- 可选,查找的起始位置。
  • end-- 可选,查找的结束位置。

例:list1 = ['Google', 'Runoob', 'Taobao']
       print ('Runoob 索引值为', list1.index('Runoob'))


Runoob 索引值为 1

5

list.insert(index, obj)

  • index -- 对象obj需要插入的索引位置。
  • obj -- 要插入列表中的对象

将对象插入列表

list1 = ['Google', 'Runoob', 'Taobao']
list1.insert(1, 'Baidu')
print ('列表插入元素后为 : ', list1)


列表插入元素后为 : ['Google', 'Baidu', 'Runoob', 'Taobao']

6

list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

7

list.remove(obj) 移除列表中某个值的第一个匹配项

8

list.reverse() 反向列表中元素

9

list.sort( key=None, reverse=False) 对原列表进行排序

key:表示指定从每个列表元素中提取一个比较键(如,设置“key = str.lower”表示在排序时不区分字母大小写)

reserve: reserve=True表示降序排列;若为False,则升序(默认)

10

list.clear() 清空列表

11

list.copy() 复制列表

总结:

1.列表中删除元素主要分为以下 3 种场景:

  • 根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法
  • 根据元素本身的值进行删除,可使用列表(list类型)提供的 remove() 方法
  • 将列表中所有元素全部删除,可使用列表(list类型)提供的 clear() 方法

2.sorted()  和  .sort()  区别

str1 = ['P','y','t','h','o','n']
print(sorted(str1))#sorted只是临时排序原来的列表并不会改变
print(str1)
str1.sort(reverse=True)#sort会改变原来的列表,同时题目要求降序就还需要reverse
print(str1)

列表推导式

语法:list = [Expression for var in range()/list1]

Expression:表达式,用于计算新列表的元素

var:循环变量

import random
randomnumber = [random.randint(1,100) for i in range(10)]
print("生成的随机数为:",randomnumber)
#>>>生成的随机数为:[38,12,28,26,58,67,100,41,97,15]

#根据列表生成指定需求的列表 newlist = [Expression for var in list]
price = [1200,5300,2988,6200,1998,8888]
sale = [int(x*0.5) for x in price]
print("原价格:",price)
print("打五折的价格:",sale)
#>>>原价格: [1200,5300,2988,6200,1998,8888]
#>>>打五折的价格:[600,2665,1494,3100,999,4444]

#从列表中选出符合条件的元素组成新的列表 newlist = [Expression for var in list if condition]
price = [1200,5300,2988,6200,1998,8888]
sale = [x for x in price if x > 5000]
print("价格高于5000的:",sale)
#>>>价格高于5000的:[5300,6200,8888]