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]; 123 元素个数 : 2 |
3 | list.extend(seq) 将一个列表的全部元素添加到另一个列表中,list为原列表,seq为要添加的列表 |
4 | list.index(obj) --获取指定元素首次出现的下标 list.index(x[, start[, end]])
例:list1 = ['Google', 'Runoob', 'Taobao'] Runoob 索引值为 1 |
5 | list.insert(index, obj)
将对象插入列表
列表插入元素后为 : ['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]