python学习笔记(三)列表

python学习笔记(三)列表

1、列表初见
列表由一系列按特定顺序排列的元素组成,同一个列表中的元素类型是任意的,相互之间可以没有任何联系,这比C++中我们熟知的数组要更加灵活,因而功能也会更加强大。

languages = ['c', 'python', 'java', 'ruby']

python 中,用方括号([])标志列表的使用,元素之间用逗号(,)隔开。

2、列表的访问与数组的访问类似,通常通过元素的位置或者索引进行访问,这里提醒新手一点,索引是从0开始的(大部分编程语言都遵循这一原则),因此若想访问列表的第一个元素,应该

languages = ['c', 'python', 'java', 'ruby']
element_first = languages[0]

之后的元素依次后推即可。(小诀窍:将需要访问的元素排列位置减1则是其索引)。
python另外还提供了一种特殊的语法用于访问末尾的元素,这在我们想要访问列表长度未知或过长时有奇效。

languages = ['c', 'python', 'java', 'ruby']
element_last_first = languages[-1]	#倒数第一个元素
element_last_second = languages[-2]	#倒数第一个元素
element_last_third = languages[-3]	#倒数第一个元素

以此类推。

3、修改列表元素
列表是动态的,python功能的强大也体现在列表在创建之后,可以随着程序的运行增删元素。
修改列表的元素与访问的语法类似,直接将修正值赋给需要修改的元素的索引即可。

languages = ['c', 'python', 'java', 'ruby']
languages[0] = 'c++'

4、添加列表元素
python中添加列表元素主要有两个函数:
A. .append() 将元素附加到列表末尾

languages = ['c', 'python', 'java', 'ruby']
languages.append('c++')
# 列表变为:
# ['c', 'python', 'java', 'ruby', 'c++']

.append() 函数通常应用于动态创建列表

languages = []	#先创建一个空列表,留待使用
# 动态修改列表
languages.append('c')
languages.append('python')
languages.append('java')
languages.append('ruby')

B. .insert() 在列表中插入元素
该方法可以在列表的任何位置添加新元素(因为列表是动态的,区别于既定大小的静态数组),只需要提供需要添加的元素的索引和值即可。

languages = ['c', 'python', 'java', 'ruby']
languages.insert(1, 'c++')
# 列表变为:
# ['c', 'c++', 'python', 'java', 'ruby']

值 ‘c++’ 被插入到了列表的第二个位置,列表中除了第一个元素,其他原有的元素都右移一个位置。

5、删除列表元素
python中有3个函数可以用来删除元素
A. del
只要知道了元素的索引,del 可以删除列表任何位置的元素,但是结果是不可逆的,即一旦删除,就无法再访问它了。

languages = ['c', 'python', 'java', 'ruby']
del languages[1]
# 列表变为:
# ['c', 'java', 'ruby']

B. .pop()
pop是弹出的意思,通常会将弹出的值赋给一个新的变量,列表中的值也会随之删除。
在使用 .pop() 函数时需要传参,参数时需要弹出的元素的索引,如果没有传参,将默认弹出末尾的元素。通常用法为:

languages = ['c', 'python', 'java', 'ruby']
language_popped = languages.pop(1)
# 列表变为:
# ['c', 'java', 'ruby']
# language_popped 中存储 'python' 以供继续使用
# languages.pop() 将弹出 'ruby'

C. .remove() 根据值删除元素
当我们只知道需要删除的元素的值而不知道其索引时,可以使用 .remove() 函数,但是该函数默认从列表第一个元素开始遍历,当出现指定元素时,进行删除,并随即停止,也就是说,若列表后面还有相同的值, .remove() 函数时不进行删除的(这里的解决办法会在之后的章节中阐述)。
而且,由于我们已经知道元素的值,我们删除该元素之后仍然可以使用该值。

languages = ['c', 'python', 'java', 'ruby']
to_remove_language = 'python'
languages.remove(to_remove_language)	
# languages.remove('python')
# 列表变为:
# ['c', 'java', 'ruby']

6、对列表进行排序
A. .sort() 永久性排序(不可逆排序)

languages = ['c', 'python', 'java', 'ruby']
languages.sort()
# 列表变为:
# ['c', 'java', 'python', 'ruby']

显然,按照字典序对列表进行了永久性排序,若想逆字典序排序,则需要引入参量 reverse=True

languages = ['c', 'python', 'java', 'ruby']
languages.sort(reverse=True)
# 列表变为:
['ruby', 'java', 'python', 'c']

或者采用 .reverse() 函数,也是永久性排序。

languages = ['c', 'python', 'java', 'ruby']
languages.reverse()
# 列表变为:
['ruby', 'java', 'python', 'c']

B. sorted() 临时行排序
我们可以使用该函数将列表进行临时性排序后赋给一个新的变量,这样不会对列表的顺序造成影响。

languages = ['c', 'python', 'java', 'ruby']
sorted_languages = sorted(languages)
print(languages)
print(sorted_languages)
# 运行结果如下:
# ['c', 'python', 'java', 'ruby']
# ['c', 'java', 'python', 'ruby']

逆字典序则引入参量 reverse=True

7、确定列表长度
函数 len() 返回列表长度

languages = ['c', 'python', 'java', 'ruby']
length_languages = len(languages)
print(length_languages)
# 输出为:4
发布了3 篇原创文章 · 获赞 3 · 访问量 258

猜你喜欢

转载自blog.csdn.net/weixin_44650011/article/details/104083989
今日推荐