Python 基础之 "组合数据类型" 列表
索引、序列的切片操作:
练习1:
s=len('helloworld') print(s) s='helloworld' for i in range(0,len(s)): print(i,s[i]) s='helloworld' s1=s[0:5:1] # [start:end:step] 开始,结束,步长,不包含end值,也就是5;不指定start,默认从0开始; print(s1)
序列的相关操作符与函数:
x in s 如果x是s的元素,结果为True,否则为False x not in s 如果x不是s的元素,结果为True,否则为False len(s) 序列中s中元素的个数(即序列长度) max(s) 序列中s中元素的最大值 min(s) 序列中s中元素的最小值 s.index(x) 序列中s中第一次出现的元素x的位置 s.count(x) 序列中s中元素x出现的总次数
列表:
lst=['hello','world',99.8,100] print(lst) 输出:['hello', 'world', 99.8, 100] # 通过内置的list()函数创建列表: lst1=list(range(1,10,2)) print(lst1) 输出:[1, 3, 5, 7, 9] lst2=list('helloworld') print(lst2) 输出:['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
列表元素的遍历:
for 与 range()函数和len()函数组合遍历 for 与 enumerate()函数组合遍历元素和索引
练习1:
lst=['hello','world'] for index,item in enumerate(lst): # 默认index序号从0开始 print(index,item) for index,item in enumerate(lst,1): # 默认index序号从1开始 print(index,item) #print(index,item,id(lst)) id 查看内存地址
列表的相关操作:(列表中,实际存储的是对象的内存地址):
lst.append(x) 在列表lst最后增加一个元素
lst.insert(index,x) 在列表中第index位置增加一个元素
lst.clear() 清除列表lst中所有元素
lst.pop(index) 将列表lst中第index位置的元素取出,并从列表中将其删除
lst.remove(x) 将列表中lst中出现的第一个元素x删除
lst.reverse() 将列表lst中的元素反转
lst.copy() 拷贝列表lst中所有的元素,生成一个新的列表
列表排序:
1.列表对象的sort()方法
对原列表中的元素进行排序,列表中的元素顺序发生改变
lst.sort(key=None,reverse=False)
练习:
# sort() 使用方法 lst=[1,57,6,7,10,77] print('原列表:',lst) lst.sort() # 默认是升序,另一种写法:lst.sort(reverse=False) print(lst) lst.sort(reverse=True) # 降序 print(lst) # 忽略大小写比较,如果有大小写比较,大写在小写前面,因为大写的ASCII是65位,小写是96位 lst2=['Orange','apple','Bnanna','open','Fuck'] lst2.sort(key=str.lower) print(lst2)
2.内置的sorted()函数 :
使用sorted()函数后,原来元素顺序不变,排序后产生一个新的列表对象
sorted(iterable,key=None,reverse=False)
练习:
# sorted()使用方法 # 默认升序 asc_list=sorted(lst) print('原列表升序:',asc_list) #降序 desc_list=sorted(lst,reverse=True) print('原列表降序:',desc_list) # 忽略大小写 new_list=sorted(lst2,key=str.lower) print(new_list)
列表生成式
1.生成指定范围的数值列表
lst=[expression for item in range] # expression 表达式
练习:
import random lst=[ item for item in range(1,11) ] # 第一个item 是表达式 print(lst) lst2=[random.randint(1,100) for _ in range(10)] # _ 表示for循环执行的次数 print(lst2) # 产生10个1-100之间的随机数
2.从列表中选择符合条件的元素组成新的列表
lst=[expression for item in 列表 if condition]
练习:
# 从列表中选择符合条件的元素,组成新的列表 lst=[i for i in range(10) if i%2==0] # 0-9之间的偶数 print(lst) 二维列表 (外层循环是行,内层循环是列) # 创建二维列表 lst=[ ['城市','环比','增长'], ['北京',102,103], ['深圳',104,777], ['广州',666,999] ] print(lst) # 遍历列表内容,外层遍历行,内层遍历列 for row in lst: # 遍历行 for item in row: # 遍历列 print(item,end='\t') print() # 换行 -------------------------------------------------- # 列表生成4行5列 lst2=[[j for j in range(5)] for i in range(4)] print(lst2)