《Python编程从入门到实践》学习笔记<3>:列表

1、列表的组成

   列表是由一系列按照特定顺序排列的元素组成的有序集合,在Python中,列表需要用'[]'括起来表示,列表中各元素之间需要用','隔开。
 作为有序集合,列表在访问的时候,只要知道所需访问元素的位置或索引,就可以直接访问,如下所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names[0])

输出结果如下所示:

zhangsan

  此时需要注意的是,Python上文索引跟其他编程语言一样,都是从0开始进行计数的,因此在数组中,第一位元素的索引应当是0,第二位是1;若从后往前访问元素,则从-1开始表示倒数第一位元素。无论正序访问还是倒序访问,索引都会根据你所访问的位数以此类推,如下例所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']

ny_name = 'My name is ' + names[0].title() + ',what`s you name?'
you_name = 'My name is ' + names[-1].title()

print(ny_name)
print(you_name)

  上例对同样一个列表,进行了正序倒序两种不同的元素访问,此外还根据情况,引用首字母大写的方式获取了姓名,并且进行了拼接,因此输出答案如下所示:

My name is Zhangsan,what`s you name?
My name is Zhengwang

2、修改、添加和删除列表中的元素

  列表通常都是以动态的方式存在,这是因为列表内的元素常常会因为程序在不同阶段的运行结果不同,而对列表内的元素进行有目的的增删改操作。

2-1修改列表中的元素

  在Python中,对于列表中元素的修改,通常有两种方式,一种是获取元素的位置,通过直接赋值来修改,如下所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

names[3] = 'zhangxueyou'
print(names)

  在上例中,列表'names'中第3位元素被修改为'zhangxueyou',现将修改前和修改后的列表分别打印输出后,可以看出修改的结果,如下所示:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['zhangsan', 'lisi', 'zhouwu', 'zhangxueyou']

  另一种方法则是引用函数进行修改,常用函数有两个,分别为'append()'方法和'insert()'方法

  'append()':在列表末尾添加元素

  insert()':根据指定的索引值,在列表任意位置添加元素

  其中'append()'方法对动态的列表创建尤为有用,如下例所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

names.append('fengchen')
print(names)

  分别将添加元素前和添加元素后的列表打印出来,输出结果如下所示:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['zhangsan', 'lisi', 'zhouwu', 'zhengwang', 'fengchen']

  此时可以看到新增元素'fengchen'放在了最后一位。

  另一个添加元素的函数是'insert()',该函数可以通过指定索引和值来添加元素,示例如下:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

names.insert(2,'fengchen')
print(names)

  上例中,通过'insert()'函数,指定在列表'names'中添加索引为2,值为'fengchen'的元素,输出结果如下所示:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['zhangsan', 'lisi', 'fengchen', 'zhouwu', 'zhengwang']

2-2、删除元素

  删除元素的函数有三个,分别为'del','remove()','pop()',其中

  'del':根据元素索引值直接删除元素

  'remove()':根据元素的只来删除元素

  'pop()':将列表中任意位置的元素取出存入栈中,类似于剪切

  使用'del'的前提是知道元素在列表中的索引位置,通过指定位置来删除元素,如下所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

del names[0]
print(names)

  通过打印删除前后的列表,查看删除效果,输出如下:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['lisi', 'zhouwu', 'zhengwang']

  当删除的元素仍然需要的时候,可以使用'pop()'方法进行删除,类似于剪切功能,使用方式通常为将原、列表中需要取出的元素拿出来,放在新的列表中,这样既在原列表中删除了该元素,又在新的列表中添加原该元素,如下所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

new_names = names.pop(0)
print(names)
print(new_names)

  在执行'pop()'操作之前,列表中有四个元素,当执行'pop()'操作之后,原列表中索引值为0的元素将被取出,存放进新的列表'new_names'中,作为新列表中的元素存在,如下图所示:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['lisi', 'zhouwu', 'zhengwang']
zhangsan

  需注意,当使用'pop()'方法时,如果括号内未指定索引,则默认从原列表最后一位元素开始取。

  最后一种删除元素的方式是'remove()'函数,该函数可以根据元素值,直接进行删除操作,如下所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

names.remove('lisi')
print(names)

  引用函数'remove()',指定元素'lisi',对列表'names'进行删除操作,输出结果如下:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['zhangsan', 'zhouwu', 'zhengwang']

  此时元lisi'在列表names'中,被删除。

3、组织排列

  在列表中,元素的顺序常常是无法预测的,因此某些时候需要对列表里的元素进行排列。在Python中,对元素的排列有两种方法,分别为'sort()','sorted()'

  'sort()':对列表进行永久性的排序,即执行以后,列表中的元素顺序发生改变,若需要倒序,可设定传递参数'reverse = True'的方式进行倒叙排列,如下例所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

names.sort()
print(names)

names.sort(reverse = True)
print(names)

print(names)

  此时列表中元素的排列顺序已经发生改变,输出结果如下所示:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['lisi', 'zhangsan', 'zhengwang', 'zhouwu']
['zhouwu', 'zhengwang', 'zhangsan', 'lisi']
['zhouwu', 'zhengwang', 'zhangsan', 'lisi']

  'sorted()':对列表进行临时性的排序,即执行以后只在输出结果显示排序后的元素,列表本身的元素顺序不改变,同样可使用设定传递参数'reverse = True'的方式进行倒叙排列,如下所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

print(sorted(names))

print(sorted(names,reverse = True))

print(names)

  需注意'sorted()'进行倒序排列时,需要在列表后添加',reverse =执行完后,结果如下:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['lisi', 'zhangsan', 'zhengwang', 'zhouwu']
['zhouwu', 'zhengwang', 'zhangsan', 'lisi']
['zhangsan', 'lisi', 'zhouwu', 'zhengwang']

  查询原列表中的元素顺序,发现原列表中的元素顺序并未改变.

  使用函数reverse(),可以将原列表的所有元素的顺序翻转过来,但这本身不能算是排序,只是顺序的完全颠倒,如下所示:

names = ['zhangsan','lisi','zhouwu','zhengwang']
print(names)

names.reverse()
print(names)

  此时列表中的元素已经完全反转,执行结果如下所示:

['zhangsan', 'lisi', 'zhouwu', 'zhengwang']
['zhengwang', 'zhouwu', 'lisi', 'zhangsan']

  确定列表长度的函数为'len()',可以直接获取类表中元素的个数,如下所示

names = ['zhangsan','lisi','zhouwu','zhengwang']
print("列表长度为:" + str(len(names)))

  输出结果如下:

列表长度为:4
原文地址:https://www.cnblogs.com/a404790696/p/10863553.html