Python列表的基本使用

Python列表的基本使用

在Python中,列表指的是按特定顺序排列的元素组成,相当于java中的List集合,下面主要针对列表的创建,使用来介绍列表的使用

1. 列表的定义

# 我们使用方括号[]来定义一个列表
list = ["a","b","c"]

2. 列表的访问

因为列表是有序集合,因此我们要访问列表中元素,可以通过索引的方式进行获取

list = ["a","b","c"]
print(list[0])   # a

如果你想使得我们访问的元素首字母大写的话,可以加上titile()

list2 = ['trek','cannondale','readline','specialized']
print(list2[0].title())  #Trek

注意:

  • 列表的第一个位置的索引为0
  • 如果你想访问当前列表的最后一个位置的值,可以通过将索引设置为-1,即可以访问最后一个元素

3. 列表元素的修改

直接访问想要修改位置的值,然后赋值修改即可

list = ["a","b","c"]
print(list[0])   # a
list[0] = "g"
print(list[0])   # g

4. 向列表中添加元素

append : 将元素添加至列表的末尾

insert(index,val):在列表的任意位置添加新元素

list = ['a','b','c']
list.append('d')
print(list)
list.insert(1,'e')
print(list)

输出结果:

['a', 'b', 'c', 'd']
['a', 'e', 'b', 'c', 'd']

5. 从列表中删除元素

5.1 删除指定位置的值 del 列表[index]
list = ['a','b','c','d']
del  list[0]   # 删除第一个位置的值'a'
5.2 删除列表末尾位置的值 pop()
list = ['a','b','c','d']
list.pop()  # 删除最后一个位置的值'd'
5.3 删除指定值 remove()
list = ['a','b','c','d']
list.remove('b')

注意 :

  • 方法remove()只会删除第一个指定的值

6. 组织列表

一般来说,我们创建列表,元素的排列顺序常常是无法预测的,此时,我们如果想要我们当前的列表时有序的,就可以使用对应的方法将当前列表变成有组织的列表结构

6.1 使用sort()对列表进行永久性排序
list = [5,6,34,-2,13,789]
list.sort()
print(list)

输出结果:

[-2, 5, 6, 13, 34, 789]
6.2 使用sorted()对列表进行临时性排序

如果你想要保留原来的排序顺序,只是想要特定的顺序来呈现列表,此时可以使用sorted函数

list = [5,6,34,-2,13,789]
print(sorted(list))
print(list)

输出结果:

[-2, 5, 6, 13, 34, 789]   #排序的
[5, 6, 34, -2, 13, 789]   #原来的顺序

当然我们可以按照逆序进行排序,此时我们在sorted函数中添加第二个参数reverse = True即可

list = [5,6,34,-2,13,789]
print(sorted(list,reverse = True))

输出结果:

[789, 34, 13, 6, 5, -2]

7. reverse()反转列表元素

list = ['abc','def','ghi']
list.reverse()
print(list)

输出结果:

['ghi', 'def', 'abc']

8. len()获取列表的长度

list = ['abc','def','ghi']
print(len(list))

9. 列表的for循环遍历

list = ['abc','def','ghi']
for val in list:
    print(val)

10.数字列表的使用

列表在使用过程中非常适合用于存储数字集合,而我们在Python中可以使用以下函数生成对应的一些数字集合:

10.1 使用range()函数

使用range函数可以生成一系列的数字:

for value in range(1,5):
    print(value)

输出结果:

1
2
3
4

这里range(start,end)表示从数字start开始,到end数字(不包括end数字)!

10.2 使用range函数创建数字列表

我们可以利用list()函数 + range函数生成我们需要的列表,这里

list = list(range(1,10))
print(list)

输出结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

11. 列表的常见的统计计算

  • min:求最小值
  • max:求最大值
  • sum:求和

12. 列表的解析

此时,我们要求将1到10的平方存储到一个列表中,可以用下面语句实现:

squares = []
for value in range(1,11):
    squares.append(value ** 2)
print(squares)

此时,我们可以使用下面的一行代码完成:

squares = [value ** 2 for value in range(1,11)]
print(squares)

13. 使用列表的一部分

列表[起始索引:结束索引]

其中,如果不指定起始索引,则默认从列表的起始索引开始,不指定结束索引,则默认到列表的最后一个元素

并且,这里切片包括起始索引,不包括结束索引

list = ['a','b','c','d','e','f','g']
print(list[0:3])
print(list[1:4])
print(list[:2])
print(list[2:])

输出结果:

['a', 'b', 'c']
['b', 'c', 'd']
['a', 'b']
['c', 'd', 'e', 'f', 'g']

注意:

  • 因为负数索引表示返回离列表默认相应距离的元素,其中-1指的是最后一个元素

故我们如果想要返回最后三个元素,可以使用list[-3:]

同时,列表的切片我们可以使用for循环进行遍历:

list = ['a','b','c','d','e','f','g']
for value in list[-3:]:
    print(value)

输出结果:

e
f
g

14. 列表的复制

如果我们想在原有的列表基础之上,创建一个原有列表的复制,此时我们可以使用列表的切片来实现,这里我们指定切片的起始索引和结束索引均为空即可!!!

list = ['a','b','c','d','e','f','g']
new_list = list[:]
print("原来的列表为:")
print(list)
print("复制的列表为:")
print(new_list)

输出结果:

原来的列表为:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
复制的列表为:
['a', 'b', 'c', 'd', 'e', 'f', 'g']

我们尝试修改原来列表中元素,再次打印输出:

list = ['a','b','c','d','e','f','g']
new_list = list[:]
list[0] = 'h'
print("原来的列表为:")
print(list)
print("复制的列表为:")
print(new_list)

输出结果:

原来的列表为:
['h', 'b', 'c', 'd', 'e', 'f', 'g']
复制的列表为:
['a', 'b', 'c', 'd', 'e', 'f', 'g']

13. 元组(不可变的列表)

如果你想要创建一系列不可修改的元素,则可以使用元组

其中,我们在创建元组的时候,使用圆括号而不是方括号来标识,定义元组以后,就可以使用索引来访问元素

dimensions = (1,2,34,45)
print(dimensions[0])

创建元组以后,我们试图去修改元组中元素的值:

dimensions = (1,2,34,45)
dimensions[0] = 0

输出结果:

Traceback (most recent call last):
  File "D:/PycharmProjects/PhthonStudy/grammar/列表/元组.py", line 2, in <module>
    dimensions[0] = 0
TypeError: 'tuple' object does not support item assignment

虽然元组中元素的值不能改变,但是我们可以使用重新赋值的方法来间接改变!!

dimensions = (1,2,34,45)
print(dimensions)
dimensions = (520,13,14)
print(dimensions)

输出结果:

(1, 2, 34, 45)
(520, 13, 14)

注意:

  • 相对于列表,元组是更为简单的数据结构,如果需要存储一组值在程序的整个生命周期内都不会发生改变,可以使用元组!!!
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值