Python-列表

和自甴很熟 提交于 2020-03-25 00:35:48

列表

1有序的集合

2通过偏移来索引,从而读取数据

3支持嵌套

4可变的类型

a=[1,2,3]

print(a[-1])             结果 3

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

print(b)                 结果[[1, 2, 3], [4, 5, 6]]

print(b[0])             结果[1, 2, 3]

print(b[0][1])         结果 2

 

1 切片

          a=[1,2,3,4,5,6,7]

          print(a[0:3:1])      结果:[1, 2, 3]               #正向索引

          print(a[-1:-5:-1])   结果:[7, 6, 5, 4]           #反向索引

          print(a[1:])           结果:[2, 3, 4, 5, 6, 7]    #默认索引

          print(a[1::2])        结果:[2, 4, 6]               #默认索引,步长值2

2 添加操作

“+”

extend     接受参数并将该参数的每个元素都添加到原有的列表中,原地修改列表而不是新建列表

append     添加任意对象的引用到列表的末端

insert       插入任意对象的引用到列表中,可以控制插入位置

创建列表:

            member=['wu','jia','dong']

            member.append('xiang')                            #append()函数只能添加一个元素或一个列表

            print(member)                                           结果['wu', 'jia', 'dong', 'xiang']

            member.extend(['bi','ye','le','ya'])               #exten()函数能向列表中添加多个元素,但要加方括号(列表形式)

            print(member)                                         结果['wu', 'jia', 'dong', 'xiang', 'bi', 'ye', 'le', 'ya']

           member.insert(3,'hao')                              # 向列表指定位置插入元素

           print(member)                                        结果['wu', 'jia', 'dong', 'hao', 'xiang', 'bi', 'ye', 'le', 'ya']

3 列表修改

修改列表本身只需要直接赋值操作就行

4列表的删除

del    我们通过索引啥拿出指定位置的元素

del  a  删除列表对象的引用

del  a[:] 清空列表对象里的元素 

remove  移除列表中指定值的第一个匹配值。如果没找到的话,会

pop   返回最后一个元素,并从list中删除

                member.remove('hao')   # 只能删除一个元素

                print(member)             结果['wu', 'jia', 'dong', 'xiang', 'bi', 'ye', 'le', 'ya']

                del member[0]           #del后面不能有点号,括号里只能是数字。删除指定位置的元素

                print(member)           结果'jia', 'dong', 'xiang', 'bi', 'ye', 'le', 'ya']

列表元素互换位置(xiang和bi互换)

                temp=member[2]

                 member[2]=member[3]

                 member[3]=temp

                  print(member)                  结果['jia', 'dong', 'bi', 'xiang', 'ye', 'le', 'ya']

                 member.pop()

                 print(member)                 结果['jia', 'dong', 'bi', 'xiang', 'ye', 'le']

                 member.pop(5)

                 print(member)                 结果['jia', 'dong', 'bi', 'xiang', 'ye']

5列表索引值【方括号[]】

member【1:3】

6列表操作符

*比较操作符

*逻辑操作符

*连接操作符

*重复操作符

*成员关系操作符

比较操作符:

                list1=[1,2,3]

                list2=[2,3,4]

                print(list1>list2)  结果False #列表与列表的比较是比较0元素

逻辑操作符:

                list1=[1,2,3]

                list2=[2,3,4]

                lst3=[4,5,6]

                print(list1<list2 and list2<list3) 结果True

连接操作符:

               list5=list1+list2

               print (list5)             结果:[1, 2, 3, 2, 3, 4]

重复操作符

               list1=[1,2,3]

               list2=[2,3,4]

               list1*=3

               print (list1)               结果:[1, 2, 3, 1, 2, 3, 1, 2, 3]

成员关系操作符;

               list1=[1,2,3]

               list2=[2,3,4]

               print (1 in list1 and 5 not in list1 )            结果True          #注意这里的元素不要引号

               list3=[1,2,3,[4,5,6],7,8,9]                      # [4,5,6]是list3中的一个元素

               print (4 in list3)                                    结果: False                  #应该要写[4,5,6]是list3中的元素

               print(4 in list3[3])                                结果:True

               print(list3[3][2])                                  结果:6

7  列表内置函数(dir(list))

count函数

               list1=[1,2,3,1,2,3,1,1,1,1]

               print(list1.count(2))         结果2       #count函数,计算他的参数在列表中的次数,2 出现了2次

index函数

               list1=[1,2,3,1,2,3,1,1,1,1]

               print(list1.index(1,3,8))      结果3                  #后面参数3和8表示范围

reverse()函数

              list1=[1,2,3,1,2,3,1,1,1,1]

              list1.reverse()

              print(list1)   结果[1, 1, 1, 3, 2, 1, 3, 2, 1]

sort()函数

             list1=[1,2,3,1,2,3,1,1,1,1]

            list1.sort() #没加参数,默认从小到大

             print(list1) 结果[1, 1, 1, 1, 1, 1, 2, 2, 3, 3]

             list1.sort(reverse=True) #加上参数,反过来,从大到小

             print(list1)       结果:[3, 3, 2, 2, 1, 1, 1, 1, 1, 1]

列表的分片拷贝补充:

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

             list2=list1[:]              #只是复制了list1中的值

             list3=list1

             print(list1) 结果[6, 5, 4, 3, 2, 1]

             print(list2) 结果[6, 5, 4, 3, 2, 1]

             print(list3) 结果[6, 5, 4, 3, 2, 1]

              print ('\n')

             list1.sort() 结果

             print(list1) 结果[1, 2, 3, 4, 5, 6]

             print(list2) 结果[6, 5, 4, 3, 2, 1]

             print(list3) 结果[1, 2, 3, 4, 5, 6]

8列表推导式:[expr  for  iter_var  in  iterable]

首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。比如我们要生成一个包含1到18的列表

         print([x for x in range(1,11)])

         print(list(range(1,11)))

[expr  for  iter_var  in  iterable  if cond_expr]

         print([x for x in range(1,11) if x % 2 == 1])

6内置list

List(obj)—返回一个列表

7 range与xrange比较

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!