Python 6:列表

(1)列表由一系列按特定顺序排列的元素组成。

(2) 特点:有序、不唯一,列表的元素可以被修改(链表存储方式)。

(3)用方括号([])表示列表,并用逗号分隔其中的元素。

names = ['jane','may','james','kai']
print(names)

['jane', 'may', 'james', 'kai']

(4)访问列表元素

列表是有序集合,因此要访问列表的任意元素,只需将该元素的位置(索引)告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将后者放在方括号内。

names = ['jane','may','james','kai']
print(names[1])

may

现在可以对任意列表元素调用字符串方法。

(5)索引从0而不是1开始

在Python中,第一个列表元素的索引为0,而不是1。多数编程语言是如此规定的,这与列表操作的底层实现相关。

第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其位置减1,并将结果作为索引。例如,要访问第四个列表元素,可使用索引3。

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素:

names = ['jane','may','james','kai']
print(names[-1])

kai

其他元素取值,也类似。例如倒数第二个为-2,倒数第三个为-3。

(6)使用列表中的各个值

# 通勤方式
# cars = ['honda','mazda','bmw','benz']
# tools = f"I go to work by {cars[0].title()}."
# print(tools)
# tools = f"I go to work by {cars[1].title()}."
# print(tools)
# tools = f"I go to work by {cars[2].title()}."
# print(tools)
# tools = f"I go to work by {cars[3].title()}."
# print(tools)

I go to work by Honda.
I go to work by Mazda.
I go to work by Bmw.
I go to work by Benz.

 (7)  修改元素

修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。

# 修改列表元素
cars = ['honda','mazda','bmw','benz']
print(cars[0])
print(cars)
cars[0] = 'byd'
print(cars[0])
print(cars)

honda
['honda', 'mazda', 'bmw', 'benz']
byd
['byd', 'mazda', 'bmw', 'benz']

支持切片修改

cars[1:3] = ['byd','audi']

(8)在列表末尾添加元素

附加(append)到列表

cars = ['honda','mazda','bmw','benz']
cars.append('volvo')
print(cars)

['honda', 'mazda', 'bmw', 'benz', 'volvo']

(9) 在列表中插入元素

使用方法insert()可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。

cars = ['honda','mazda','bmw','benz']
cars.insert(0,'volvo')
print(cars)

['volvo', 'honda', 'mazda', 'bmw', 'benz']

方法insert()在索引0处添加空间,并将值'volvo'存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置。

(10) 使用del语句删除元素

如果知道要删除的元素在列表中的位置,可使用del语句。

cars = ['honda','mazda','bmw','benz']
del cars[0]
print(cars)

['mazda', 'bmw', 'benz']

使用del可删除任意位置处的列表元素,条件是知道其索引。

使用del语句将值从列表中删除后,你就无法再访问它了。

(11)  使用方法pop()删除元素

方法pop()删除列表末尾的元素,并让你能够接着使用它。

cars = ['honda','mazda','bmw','benz']
car = cars.pop()
print(car)
print(cars)

benz
['honda', 'mazda', 'bmw']

列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。

如果不加参数,默认删除最后一个元素。

(12)弹出列表中任何位置处的元素

可以使用pop()来删除列表中任意位置的元素,只需在圆括号中指定要删除元素的索引即可。

使用pop()时,被弹出的元素就不再在列表中了。

如果你不确定该使用del语句还是pop()方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()。

(13)根据值删除元素

有时候,你不知道要从列表中删除的值所处的位置。如果只知道要删除的元素的值,可使用方法remove()。

cars = ['honda','mazda','bmw','benz']
cars.remove('benz')
print(cars)

['honda', 'mazda', 'bmw']

如果列表中有多个重复值,只删除满足条件的第一个值。

支持切片删除

del cars[1:3]

(14)按字母表顺序永久排序 列表名.sort()

(15)按字母表反序永久排序 sort(reverse = True)

(16)按字母表顺序临时排序 sorted(列表名)

调用函数sorted()后,列表元素的排列顺序并没有变。如果要按与字母顺序相反的顺序显示列表,可向函数sorted()传递参数reverse=True。

(17)反转列表元素的排列顺序 列表名.reverse()

方法reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。

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

(18)列表的长度 len(列表名)

(19)遍历整个列表

names = ['james','lucy','may','peak']
for name in names:
    print(name.title())

James
Lucy
May
Peak

编写for循环时,对于存储列表中每个值的临时变量,可指定任何名称。然而,选择描述单个列表元素的有意义的名称大有帮助。

在for循环后面,没有缩进的代码都只执行一次,而不会重复执行。

避免缩进错误:

        忘记缩进

        缩进了额外的代码

(20) 支持 in

(21)字符串转换成列表

list(str)

整型不能转换成列表

(22)列表转换成字符串

#列表中含有数字和字符

li = [1,'a','b']
s = ''
for i in li:
    s = s + str(i)
print(s)

#列表中只含有字符串

li = ['1','a','b']
word = ''.join(li)
print(word)

(23)列表中可以存储任何元素:数字、字符串、列表、布尔值。

(24)list.append(参数)  默认在列表最后将参数整体追加到别表中,区别于extend方法。

li = ['1','a','b']
li.append([1,2,3])
print(li)

['1', 'a', 'b', [1, 2, 3]]

(25)list.clear()  清空列表

(26)list.copy() 拷贝(复制)浅拷贝

(27)list.count() 计算元素出现的次数

(28)list.extend(可迭代的对象)  将参数分别加到列表中,扩展原来的列表举例如下:   

li = ['1','a','b']
li.extend([1,2,3])
print(li)

['1', 'a', 'b', 1, 2, 3]

 扩展:iterable可迭代 --- 字符串、列表可迭代。

(29)list.index() 根据参数获取参数在列表中的位置

(30)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值