【一】人人都爱列表
创建简单的python列表
- 格式:name=["huahua","qq","aa"]
- 解析
- 在数据两边加引号,是将各个名字转换成字符串
- 用逗号将列表项与下一项隔开
- 在列表的两边加上开始和结束括号
- 使用赋值操作符=将这个列表赋值给一个标识符(name)
使用括号法访问列表数据
In [19]: num Out[19]: [1, 2, 3, 4, ['q', 'w', 'e'], ['a', ['s', 'd']]] In [20]: print(num[0]) 1
处理列表数据
1.for
- 格式:for 目标标识符 in 列表:
- 解析:
- for知识循环开始,出现在目标标识符前面
- 冒号:放在列表名后面,指示列表处理代码开始
- 猎豹处理代码必须在for循环下面缩进(4个空格)
In [19]: num Out[19]: [1, 2, 3, 4, ['q', 'w', 'e'], ['a', ['s', 'd']]] In [21]: for i in num: ...: print(i) ...: 1 2 3 4 ['q', 'w', 'e'] ['a', ['s', 'd']]
2.while
In [25]: num Out[25]: [1, 2, 3, 4, ['q', 'w', 'e'], ['a', ['s', 'd']]] In [26]: count=0 In [27]: while count<len(num): ...: print(num[count]) ...: count=count+1 ...: 1 2 3 4 ['q', 'w', 'e'] ['a', ['s', 'd']]
在列表中找列表
1.if...else...
- 格式:if 某个条件满足: “true”组 else: ”false“组
- 解析:
- 关键字if指示判定代码开始
- 条件测试后面有一个冒号:
- 如果条件满足,则执行”true“组
- else后面也跟冒号
- 如果条件不满足,执行false组
2.isinstance()
In [28]: num Out[28]: [1, 2, 3, 4, ['q', 'w', 'e'], ['a', ['s', 'd']]] In [29]: isinstance(num,list) Out[29]: True
3.使用多层嵌套处理列表
方法一:
In [42]: num Out[42]: [1, 2, 3, 4, ['q', 'w', 'e'], ['a', ['s', 'd']]] In [43]: for first in num: ...: if isinstance(first,list): ...: for er in first: ...: if isinstance(er,list): ...: for san in er: ...: print(san) ...: else: ...: print(er) ...: else: ...: print(first) ...: 1 2 3 4 q w e a s d
方法二:
In [44]: def digui(the_list): ...: for i in the_list: ...: if isinstance(i,list): ...: digui(i) ...: else: ...: print(i) ...: In [45]: num Out[45]: [1, 2, 3, 4, ['q', 'w', 'e'], ['a', ['s', 'd']]] In [46]: digui(num) 1 2 3 4 q w e a s d
常用的方法列表
In [47]: dir(num) Out[47]: ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
append:向列表末尾追加一个元素
In [48]: a=[1] In [49]: a.append(2) In [50]: a Out[50]: [1, 2]
clear:清楚一个列表中的所有元素
In [55]: a Out[55]: [1, 2] In [56]: a.clear() In [57]: a Out[57]: []
copy:复制一个列表
In [62]: b=[1,2] In [63]: c=b.copy() In [64]: c Out[64]: [1, 2]
count:计算某个元素在列表中出现的次数
In [73]: c Out[73]: [1, 2, 3, 2, 2, 2] In [74]: c.count(2) Out[74]: 4
extend:直接向列表末尾一次性追加一个列表
In [82]: a Out[82]: [1, 2, 3] In [83]: b Out[83]: [1, 2] In [84]: a.extend(b) In [85]: a Out[85]: [1, 2, 3, 1, 2]
index:从列表中找出某个值第一个匹配的索引位置
In [86]: a Out[86]: [1, 2, 3, 1, 2] In [87]: a.index(3) Out[87]: 2
insert:将对象插入列表中
In [88]: a Out[88]: [1, 2, 3, 1, 2] In [89]: b Out[89]: [1, 2] In [90]: a.insert(0,b) In [91]: a Out[91]: [[1, 2], 1, 2, 3, 1, 2]
pop:移除列表中的最后一个元素
In [92]: a Out[92]: [[1, 2], 1, 2, 3, 1, 2] In [93]: a.pop() Out[93]: 2 In [94]: a Out[94]: [[1, 2], 1, 2, 3, 1]
remove:移除列表中第一个匹配的元素
In [95]: a Out[95]: [[1, 2], 1, 2, 3, 1] In [96]: a.remove(1) In [97]: a Out[97]: [[1, 2], 2, 3, 1]
reverse:将列表中的元素反向存放
In [101]: a Out[101]: [[1, 2], 2, 1] In [102]: a.reverse() In [103]: a Out[103]: [1, 2, [1, 2]]
sort:对列表排序
In [112]: b Out[112]: [1, 2, 5, 4] In [113]: b.sort() In [114]: b Out[114]: [1, 2, 4, 5]
In [115]: b.sort.__doc__ Out[115]: 'L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*' In [116]: x=['abc','a','bc','abcd'] In [117]: x.sort(key=len)#根据键值来排序 In [118]: x Out[118]: ['a', 'bc', 'abc', 'abcd'] In [120]: n=[3,1,5,9] In [121]: n.sort(reverse=True) #反向排序 In [122]: n Out[122]: [9, 5, 3, 1]
使用in判断值是否存在
In [123]: n Out[123]: [9, 5, 3, 1] In [124]: 9 in n Out[124]: True
使用len获取长度
In [127]: n Out[127]: [9, 5, 3, 1] In [128]: len(n) Out[128]: 4
练习:定义一个函数,参数为接收一个无序的列表,打印出这个列表的最大值与最小值。
In [10]: def max_min(the_list): ...: for i in the_list: ...: if the_list.index(i)==0: ...: max_value=i ...: min_value=i ...: print(i,max_value) ...: the_list.pop(0) ...: print(the_list.pop(0)) ...: for j in the_list: ...: if j>max_value: ...: max_value=j ...: if j<min_value: ...: min_value=j ...: print(max_value,min_value) ...: In [11]: max_min([22,33,4,0,9]) 22 22 33 0 22 0
解题思路:1.先确定第一位数的索引是否为0 2.移除第一位数 3.循环 列表中的数,找出最大值与最小值