【一】人人都爱列表

创建简单的python列表

  1. 格式:name=["huahua","qq","aa"]
  2. 解析
  • 在数据两边加引号,是将各个名字转换成字符串
  • 用逗号将列表项与下一项隔开
  • 在列表的两边加上开始和结束括号
  • 使用赋值操作符=将这个列表赋值给一个标识符(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 列表:
  • 解析:
  1. for知识循环开始,出现在目标标识符前面
  2. 冒号:放在列表名后面,指示列表处理代码开始
  3. 猎豹处理代码必须在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...

  1. 格式:if 某个条件满足: “true”组 else: ”false“组
  2. 解析:
  • 关键字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.循环 列表中的数,找出最大值与最小值

 

posted @ 2017-05-22 16:59  花花妹子。  阅读(1333)  评论(2编辑  收藏  举报