Python入门实践(三)——列表

列表

列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。如下:

name = ['Bob', 'Libai']
print(name)

如果你让Python将列表打印出来,Python将打印列表的内部表示,包括方括号:

['Bob', 'Libai']

1、访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。如下:

name = ['Bob', 'Libai']
print(name[0])

请求获取列表元素时,Python只返回该元素,而不包括方括号和引号:

Bob

注意:索引从0开始而不是从1开始,如上的Bob的索引为0。
Python提供了一种特殊语法,可以访问列表的倒数第i个元素,只要令索引为-i就可以了,如下:

name = ['Bob', 'Libai']
print(name[-2])

输出结果为倒数第二个元素,即

Bob

2、修改、添加和删除元素

大多数列表都将是动态的,这意味着列表创建后,将随着程序的运行增删元素。

2.1、修改列表元素

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

province = ['hunan', 'beijing', 'shanghai']
print(province)

province[0] = 'tianjin'
print(province)

首先定义一个省份列表,第一个元素为“hunan”,接下来将其改为“tianjin”,输出表明,第一个元素值变了,其他列表元素未变。

['hunan', 'beijing', 'shanghai']
['tianjin', 'beijing', 'shanghai']

2.2、在列表添加元素

方法append()可以在列表末尾添加一个元素,而方法insert()可以在列表的任意位置插入元素:

province = ['tianjin', 'beijing', 'shanghai']
print(province)

province.append('guangzhou')
print(province)

province.insert(1, 'hainan')
print(province)

输出可以看出,方法append()将“guangzhou”添加到末尾而不影响其他元素,而方法insert()将“hainan”插入到索引为1的位置,

['tianjin', 'beijing', 'shanghai']
['tianjin', 'beijing', 'shanghai', 'guangzhou']
['tianjin', 'hainan', 'beijing', 'shanghai', 'guangzhou']

2.3、从列表删除元素

2.3.1、del语句和pop()方法

del语句可以删除任意位置的元素。方法pop()可以删除列表末尾的元素,并让你能够接着使用它,pop()也可以删除任意位置的元素,只要提供索引就可以了。如下:

province = ['tianjin', 'beijing', 'guangzhou', 'shanghai']
print(province)

del province[1]
print(province)

e = province.pop()
print(e)
print(province)

e = province.pop(0)
print(e)
print(province)

del语句删除了索引1对应的元素“beijing”,方法pop()则删除了最后一个元素并将元素值返回,而pop(0)则删除了第一个元素并返回元素值,输出如下:

['tianjin', 'beijing', 'guangzhou', 'shanghai']
['tianjin', 'guangzhou', 'shanghai']
shanghai
['tianjin', 'guangzhou']
tianjin
['guangzhou']
2.3.2、根据值删除元素

如果你只知道要删除的元素的值,可使用方法remove()。

province = ['tianjin', 'beijing', 'guangzhou', 'shanghai']
print(province)

province.remove('beijing')
print(province)

3、组织列表

3.1、sort()对永久性排序

方法sort()永久性修改了列表元素的排列顺序,在括号中添加参数reverse=True可以按字母顺序相反排序。

province = ['tianjin', 'beijing', 'guangzhou', 'shanghai']
province.sort()
print(province)

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

两种排序均是对列表province的永久性修改。输出如下:

['beijing', 'guangzhou', 'shanghai', 'tianjin']
['tianjin', 'shanghai', 'guangzhou', 'beijing']

3.2、使用函数sorted()对列表临时排序

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted() 。函数sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。

province = ['tianjin', 'beijing', 'guangzhou', 'shanghai']
print("Here is the original list:")
print(province)

print("\nHere is the sorted list:")
print(sorted(province))

print("\nHere is the original list again:")
print(province)

sorted()函数以原列表为参数,并返回一个经过排序的列表,而不对province列表的存储值进行修改,所以province的值没有变化。

Here is the original list:
['tianjin', 'beijing', 'guangzhou', 'shanghai']

Here is the sorted list:
['beijing', 'guangzhou', 'shanghai', 'tianjin']

Here is the original list again:
['tianjin', 'beijing', 'guangzhou', 'shanghai']

3.3、使列表倒序

要反转列表元素的排列顺序,可使用方法reverse() 。

province = ['tianjin', 'beijing', 'guangzhou', 'shanghai']
print(province)

province.reverse()
print(province)

方法reverse()也永久性改变了列表的值:

['tianjin', 'beijing', 'guangzhou', 'shanghai']
['shanghai', 'guangzhou', 'beijing', 'tianjin']

3.4、确定列表长度

使用函数len()可快速获悉列表的长度。

province = ['tianjin', 'beijing', 'guangzhou', 'shanghai']
length = len(province)
print('列表长度为:' + str(length))

len()函数以列表为参数,并返回列表的长度,赋值给了length,输出如下:

列表长度为:4

4、使用列表时要避免索引错误

刚开始使用列表时,经常会遇到一种错误。假设你有一个包含四个元素的列表,却要求获取第五个元素,即索引为4的元素(索引从0开始):

province = ['tianjin', 'beijing', 'guangzhou', 'shanghai']
print(province[4])

这将导致索引错误

Traceback (most recent call last):
  File "E:/project/Pycharm/python_study/main.py", line 2, in <module>
    print(province[4])
IndexError: list index out of range
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值