Python-列表(List)

列表,类似于JAVA中的数组,但是它比数组更加强大,可以存放任意数据类型

list1=[10,20,30,40,50,60]  #可以存放数字
list2=['aa','bb','cc']  #也可以存放字符串
list3=[10,'ABC',(10,20,30),{'A':'B'},[36,72]]  #也可以存放其他类型
print(list1,list2,list3)

访问列表中的值

  • 与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。
    通过索引列表可以进行截取、组合等操作。
    在这里插入图片描述
list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list1[0] )
print( list1[1] )
print( list1[2] )
red
green
blue

Process finished with exit code 0
  • 索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。
    在这里插入图片描述
list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list1[-1] )
print( list1[-2] )
print( list1[-3] )
black
white
yellow

Process finished with exit code 0
  • 列表的切片
    切片不会改变原列表

在这里插入图片描述

[start:end:step]
第一个数字start表示切片开始位置,默认为0;
第二个数字end表示切片截止(但不包含)位置(默认为列表长度);
第三个数字step表示切片的步长(默认为1)。
当start为0时可以省略,当end为列表长度时可以省略,
当step为1时可以省略,并且省略步长时可以同时省略最后一个冒号。
另外,当step为负整数时,表示反向切片,这时start应该比end的值要大才行。
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90,100]
print (list1[::]) # 返回包含原列表中所有元素的新列表
print (list1[::-1]) # 省略起始索引、终止索引,步长值为-1,表示列表的反转
print (list1[::2]) # 隔一个取一个,获取偶数位置的元素
print (list1[1::2]) # 隔一个取一个,获取奇数位置的元素
print (list1[3:6]) # 指定切片的开始和结束位置
print(list1[1:-2])# 从第二位开始(包含)截取到倒数第二位(不包含)

print(list1[1:-7:-1])
#  []
#起始索引1在结束索引-7的左边,因此从左往右取值,但步长为-1则决定了从右往左取值,两者矛盾,因此为空。

print(list1[-1:7:-1])
# [100, 90]
# 起始索引-1在结束索引7的右边,因此从右往左取值,而步长-1同样决定了从右往左取值,因此结果正确
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
[10, 30, 50, 70, 90]
[20, 40, 60, 80, 100]
[40, 50, 60]
[20, 30, 40, 50, 60, 70, 80]
[]
[100, 90]

Process finished with exit code 0
print(list1[-1:-7])
# []
"""
步长默认为1,从左往右取值,而起始索引-1到结束索引-6决定了从右往左取值,两者矛盾,所以为空。
索引-1在-6的右边
"""
print(list1[-5::-1])
# [60, 50, 40, 30, 20, 10]
# 步长为-1,从右往左取值,从起始索引-5开始,一直取到“起点”

列表属于可变对象,可以添加元素,修改元素,删除元素

- 添加元素

  1. 使用 append() 方法,将元素添加到列表的末尾
list1=[10,20,30,40,50,60] 
list1.append(90)  #在列表的末尾添加一个值
print(list1)
  1. 使用 insert() 方法,在指定的索引处添加元素
list1=[10,20,30,40,50,60] 
list1.insert(2,27.75)  #在列表的指定位置添加一个值 ,第一个参数是下标,第二个参数是值
list1.insert(0,29.975)  #如果输入的第一个参数大于列表的长度,那么就等价于append
print(list1)

- 修改列表

list1_1=[10,20,30,40,[50,60]]
list1_1[-1][-1]=98  #对于子列表,使用两层下标即可
print(list1_1)

- 删除列表中元素

  1. pop() 方法删除指定的索引(如果未指定索引,则删除最后一项):
list1=[10,20,30,40,50,60]
list1.pop()  #不填写参数时,默认删除列表的最后一位
list1.pop(0)  #也可以填写下标,删除指定位置的值
print(list1)
  1. remove() 方法删除指定的元素
remove根据值来删除,如果列表中没有对应的值,则报错.如果有多个值,则只删第一个
因为remove是根据值来删除元素,每个元素都要比对一下,所以效率相对较低
list1=[10,20,30,40,50,60]
list1.remove(10)
print(list1)
  1. del 关键字删除指定的索引
list1=[10,20,30,40,50,60]
del list1[2]
print(list1)

del 关键字也能完整地删除列表:
list2 = ["apple", "banana", "cherry"]
del list2
  • clear() 方法清空列表:
list1 = ["apple", "banana", "cherry"]
list1.clear()
print(list1)

- 遍历列表

list1 = ["apple", "banana", "cherry"]
for one in list1 :
  print(one)

- 列表的拼接

extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
extend()方法语法:
list.extend(seq)
参数:

  • seq – 元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾。
    返回值
    该方法没有返回值,但会在已存在的列表中添加新的列表内容。
# 列表
language = ['French', 'English', 'German']
# 元组
language_tuple = ('Spanish', 'Portuguese')
# 集合
language_set = {'Chinese', 'Japanese'}

# 添加元组元素到列表末尾
language.extend(language_tuple)
print('新列表: ', language)

# 添加集合元素到列表末尾
language.extend(language_set)

print('新列表: ', language)
新列表:  ['French', 'English', 'German', 'Spanish', 'Portuguese']
新列表:  ['French', 'English', 'German', 'Spanish', 'Portuguese', 'Chinese', 'Japanese']

Process finished with exit code 0

- Python列表函数

序号函数
1len(list) 列表元素个数(列表的长度)
2max(list) 返回列表元素最大值
3min(list) 返回列表元素最小值
4list(seq) 将元组转换为列表

- reverse()

reverse() 函数用于反向列表中元素。

list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.reverse()
print ("列表反转后: ", list1)
列表反转后:  ['Baidu', 'Taobao', 'Runoob', 'Google']

- 列表的排序

sort() 函数用于对原列表进行排序
语法
sort()方法语法:

list.sort( key=None, reverse=False)

参数

  • key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。

返回值
该方法没有返回值,但是会对列表的对象进行排序

list1 = ['Google', 'Runoob', 'Taobao', 'Facebook'] 
list1 .sort() #默认升序
print ( "List : ", list1 )
# 列表
list1 = [50, 45, 70, 99, 100] 
# 降序
list1.sort(reverse=True) 
# 输出结果
print ( '降序输出:', list1)

通过指定列表中的元素排序来输出列表:

# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]
 
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
 
# 指定第二个元素排序
random.sort(key=takeSecond)
 
# 输出类别
print ('排序列表:', random)
排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]

- 复制列表

list.copy(),返回列表的副本
list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list2 = list1.copy()
print ("list2 列表: ", list2)
list1.append('JD')
print(list1,list2)
list2 列表:  ['Google', 'Runoob', 'Taobao', 'Baidu']
['Google', 'Runoob', 'Taobao', 'Baidu', 'JD'] ['Google', 'Runoob', 'Taobao', 'Baidu']

浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。

list1 = ['Google', 'Runoob', 'Baidu',['JD']]
list2 = list1.copy()
print ("list2 列表: ", list2)
list1[-1].append('Taobao')
print(list1,list2)
list2 列表:  ['Google', 'Runoob', 'Baidu', ['JD']]
['Google', 'Runoob', 'Baidu', ['JD', 'Taobao']] ['Google', 'Runoob', 'Baidu', ['JD', 'Taobao']]

Process finished with exit code 0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凡晨丹心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值