Python数据类型之列表

Posted jidanguanbing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据类型之列表相关的知识,希望对你有一定的参考价值。

  列表

  列表是由一系列按特定循序排列的元素组成(即有序集合)。使用中括号[]来表示,并用逗号来分隔其中的元素。

  列表的元素可以是任意类型。

  list 列表(序列)中的每个元素都分配一个数字索引,从 0 开始,第一个索引是 0,第二个索引是 1,依此类推。访问list时索引号不能越界,不然会抛出 IndexError 异常。

  

  操作列表(增,删,改,查)

  访问列表

  通过列表索引访问列表元素

color = [red, yellow, blue]
print(color[0])
>>> red

  index:用于从列表中找出某个值第一个匹配项的索引位置。

color = [red, yellow, blue]
print(color.index(red))
>>> 0

  


 

  修改列表元素

  通过索引修改元素

color = [red, yellow, blue]
color[0] = black
print(color)
>>>[black, yellow, blue]

  


 

  在列表中添加元素

  insert:可在列表的任何位置添加新的元素,为此,必须要指定新元素的索引和值。

color = [red, yellow, blue]
color.insert(0, white)
print(color)
>>> [white, red, yellow, blue]

  append:在列表末尾追加新的对象。

color = [red, yellow, blue]
color.append(white)
print(color)
>>> [red, yellow, blue, white]

  extend:在列表的末尾一次性追加另一个序列中的多个值。

color = [red, yellow, blue]
color.extend(white)
print(color)
>>> [red, yellow, blue, w, h, i, t, e]

  append和extend的区别在于:

  append添加的是一个任意数据类型(数字,字符串,元组,列表,字典等)。

color = [red, yellow, blue]
color.append(12)
print(color)
>>> [red, yellow, blue, 12]

color = [red, yellow, blue]
color.append(white)
print(color)
>>> [red, yellow, blue, white]

color = [red, yellow, blue]
color.append((white))
print(color)
>>> [red, yellow, blue, white]

color = [red, yellow, blue]
color.append([white])
print(color)
>>> [red, yellow, blue, [white]]

color = [red, yellow, blue]
color.append({:white})
print(color)
>>> [red, yellow, blue, {: white}]

  #append 字符串和元组效果一样?

  extend是添加一个序列(字符串,元组,列表)。

color = [red, yellow, blue]
color.extend(white)
print(color)
>>> [red, yellow, blue, w, h, i, t, e]

color = [red, yellow, blue]
color.extend((white))
print(color)
>>> [red, yellow, blue, w, h, i, t, e]

color = [red, yellow, blue]
color.extend([white])
print(color)
>>> [red, yellow, blue, white]

color = [red, yellow, blue]
color.extend({:white})
print(color)
>>>[red, yellow, blue, ]

  #extend字符串和元组效果也一样?注意extend字典


  

  删除元素

  del:通过索引删除

color = [red, yellow, blue]
del color[0]
print(color)
>>> [yellow, blue]

  #使用del可以删除任何位置的列表元素,条件是知道其索引。del可以用于字典元素,甚至是其他变量的删除操作。

  

  pop:移除列表中的一个元素(默认是最后一个),并且返回该元素的值。

color = [red, yellow, blue]
print(color.pop())
>>> blue

  #pop方法可以删除列表中任何位置的元素,在括号中指定要删除的元素的索引。

 

  remove:用于删除列表中某个值得第一个匹配项。无返回值。

color = [red, yellow, blue]
print(color.remove(yellow))
>>> None
str_list = [‘in‘, ‘be‘, ‘to‘, ‘in‘, ‘or‘]
str_list.remove(‘in‘)
print(str_list)
>>> [‘be‘, ‘to‘, ‘in‘, ‘or‘]

 

  del是通过索引来删除。pop也是通过索引删除元素,如果没有指定元素索引,默认最后一个。remove是通过指定元素来删除。

  pop和remove共同点在于都对原列表进行修改。不同点在于pop通过索引删除元素,remove直接指定要删除的元素,并且一个有返回值,一个没有返回值。两个都对列表进行原地修改(修改原来的列表)。


  

  组织列表(排序)

  sort():用于在原位置对列表进行永久性排序,原位置意味着改变原来的列表。而不是简单的返回一个已排序的列表副本。

  错误示范:

str_list = [in, be, to, and, or]
print(str_list.sort())
>>> None

  正确示范:

str_list = [in, be, to, and, or]
str_list.sort()
print(str_list)
>>> [and, be, in, or, to]

  如果需要一个排好序的列表又保留原来的列表,简单的赋值不起作用,这样做就会让srt_1和str_2都指向了同一个列表。

str_1 = [in, be, to, and, or]
str_2 = str_1.sort()
print(str_2)
>>> None

  需要通过切片复制整个列表,然后对复制的列表进行排序操作。

str_1 = [in, be, to, and, or]
str_2 = str_1[:]
str_2.sort()
print(str_2)
>>> [and, be, in, or, to]

 

  sorted():对列表进行临时排序。

str_1 = [in, be, to, and, or]
print(sorted(str_1))
print(str_1)
>>> [and, be, in, or, to]
>>> [in, be, to, and, or]

   sorted可以用于任何序列,却总返回一个列表。

str = python
print(sorted(str))
>>> [h, n, o, p, t, y]

 

  sort和sorted都可接受reverse参数:即排序之后倒着打印。

int_list = [5, 8, 3, 7, 2, 6, 1, 4]
int_list.sort(reverse=True)
print(int_list)
>>> [8, 7, 6, 5, 4, 3, 2, 1]

  sorted接收reverse参数怎么写。。。。???

 

  reverse():反转列表元素的排列顺序,不是按字符顺序相反的顺序排列列表元素。

int_list = [5, 8, 3, 7, 2, 6, 1, 4]
int_list.reverse()
print(int_list)
>>> [4, 1, 6, 2, 7, 3, 8, 5]

  #永久性地修改列表元素的排列顺序,但可以随时恢复到原来的排列顺序,只需要对列表再次调用reverse方法即可。

 

  还有一种高级排序,以后说。

  

 

 

   

 

  

 

以上是关于Python数据类型之列表的主要内容,如果未能解决你的问题,请参考以下文章

python自学——数据类型之列表

python数据类型详细分析(附代码)

python基础之数据类型

python基础之序列类型的方法——列表&元组

【技术贴】python数据类型之列表

python基础数据类型之列表